PDA

View Full Version : TCP in VB.NET


Fenomeno85
25-04-2004, 08:53
Ciao a tutti, allora ho letto che in .net hanno messo namespace System.Net ... ma non mi dice come diavolo incorporare questa classe :(
Qualcuno è così buono da dirmi come si fa?? Ho cercato da tutte le parti ma non lo trovo.

COMPONENTE DEL GRAN CONSIGLIO DELLE CACCOLE VERDI

~§~ Sempre E Solo Lei ~§~

Jaxoon
26-04-2004, 08:16
Devi aggiungere il riferimento nel progetto... Progetto -> Aggiungi riferimento... e li selezioni quello che ti serve!;)

Fenomeno85
26-04-2004, 19:04
grazie ma non riesco a trovare namespace System.NET

ti riporto quello che c'è scritto in quel sito:

Detto questo iniziamo la nostra esplorazione per scoprire cosa offre dotNET per la gestione delle comunicazioni TCP-IP, quelli di voi che rimpiangono il controllo Winsock di VB6 rimarranno piacevolmente sopresi dalle ampie possibilita' offerte dal namespace System.Net il quale contiene tutte le classi che gravitano attorno al 'mondo' TCP-IP (e non solo).

System.Net.Dns
Iniziamo dalla classe che ci permette di risolvere la coppia indirizzo IP/Host.
La classe Dns e' una classe statica con vari metodi che offrono funzionalita' di DNS.
Tra i vari metodi della classe troviamo, ad esempio, il metodo GetHostName che ritorna il nome della machina locale

Dim LocalMachineName as String= Dns.GetHostName '// Ritorna il nome della macchina locale

...

COMPONENTE DEL GRAN CONSIGLIO DELLE CACCOLE VERDI

~§~ Sempre E Solo Lei ~§~

Beralios
26-04-2004, 19:38
Due domande 'forse' stupide.

Hai installato l'ultima versione del framework ?
Hai provato inserendo 'Imports System.Net' ?

Fenomeno85
27-04-2004, 14:25
ottimo se metto imports me la carica tranquillamente. Adesso mi metto a vedere come faccio a usare la funzione dsn :)

COMPONENTE DEL GRAN CONSIGLIO DELLE CACCOLE VERDI

~§~ Sempre E Solo Lei ~§~

DooM1
01-05-2004, 17:00
Aaah raga aiutatemiii :)
Avevo fatto un piccolo programmino di chat in VB6 con l'winsock. Funzionava egregiamente, ma ora lo vorrei rifare in VB .NET.
Non ci ho capito quasi nulla di come usare il socket in VB .NET :eek: .
Allora sono riuscito, per mezzo di esempi presi dall'MSDN ecc, a connettere mettendo il codice nell'evento di un tasto.
Ora, una volta connesso, la sub finisce, e poi come si fa? Una volta uscito dalla sub, ho perso il controllo di quel socket.
Se voglio per esempio disconnetterlo, come cavolo faccio?
Ho provato a fare un tasto "Disconnetti" e mettere lo stesso codice per connettere tranne che invece di .Connect(HostRemoto) ho messo .Close().
Ma ovviamente non funziona, perchè io sto facendo il Close su un nuovo Socket. Come faccio a riprendere quello? :muro:
Vorrei anche monitorizzare in tempo reale lo stato del socket, come era in VB6 (Winsock.state), per sapere se è connesso, o si sta connettendo, o è stato disconnesso ecc.! Non riesco proprio a capire come riavere queste funzionalità qui in .NET .

Per ricavare l'indirizzo che ho chiamato sopra "HostRemoto" c'è tutto un procedimento assurdo da fare a partire dalla stringa dell'indirizzo e dal valore della porta... :mc: :oink:
Questo indirizzo è in realtà una variabile di formato endpoint (:confused: ) che contiene sia l'IP che la porta. Vabbè... cmq bene o male per questo ho risolto.
Ora vorrei capire come fare a ridare comandi al socket che ho già usato :muro:

Fenomeno85 mi sembra che tu hai parlato di un sito che potrebbe interessarmi, potresti postare il link per favore! ;)

Ciaux :D ;)

Fenomeno85
02-05-2004, 17:52
il sito lo devo andare a ricercare. Comunque li non si usa per niente l'oggetto winsocket ma la libreria system.net ;)

COMPONENTE DEL GRAN CONSIGLIO DELLE CACCOLE VERDI

~§~ Sempre E Solo Lei ~§~

DooM1
02-05-2004, 21:32
Originariamente inviato da Fenomeno85
il sito lo devo andare a ricercare. Comunque li non si usa per niente l'oggetto winsocket ma la libreria system.net ;)

COMPONENTE DEL GRAN CONSIGLIO DELLE CACCOLE VERDI

~§~ Sempre E Solo Lei ~§~

Si questo l'ho capito ;)
Intanto ti sarei grato se postassi qualche guida... come quel sito :)...
ma più che altro non capisco questo.
Allora mettiamo che io faccia così:


Imports system.net
Imports System.net.Sockets

Public Class Form1
Inherits System.Windows.Forms.Form

Private Sub Connetti_Click(ByVal........................

Dim S as socket

s.connect(indirizzo)
'Facciamo finta che ho già la variabile indirizzo pronta ;)

End Sub

Private Sub Disconnetti_Click(ByVal...........................

Dim S as socket
s.close()

End Sub



Ecco, io come affezionato a VB6 farei così :D
Il problema è che non funziona.
Troppo semplice mi direte :sofico:

Insomma, il tasto "Connetti" funziona, ma poi per disconnettere come faccio?
Se io creo un altro socket per disconnettere (come si vede nell'evento del tasto "Disconnetti"), è chiaro che sto chiudendo la connessione di quel nuovo socket, e non di quello del tasto "Connetti" :confused:
Come faccio a continuare a dare comandi al socket aperto col tasto "Connetti" ???

Ciaux :muro: ;)