Salve a tutti. Sto sviluppando un'applicazione client-server in vb.net 2008 seguendo l'esempio che ho trovato su una guida. Il codice che pone in ascolto il server è questo:
e quello per verificare se ci sono connessioni in lista (sempre sul server) è questo:codice:'Inizializza il listener e inizia l'ascolto sulla porta '5000. Inoltre, attiva il timer per controllare se ci 'sono connessioni in arrivo. Il timer scatta ogni 100ms Listener = New TcpListener(IPAddress.Parse("127.0.0.1"), 5000) Listener.Start() tmrConnections.Start() txtLog.AppendText("Server - in ascolto..." & Environment.NewLine)
Dove tmrConnection è un timer, Listener è un oggetto di tipo TcpListener, NetStream è di tipo NetworkStream e Client è di tipo TcpClientcodice:'Se ci sono connessioni... If Listener.Pending() Then 'Ferma un attimo il timer tmrConnections.Stop() 'Chiede all'utente se confermare la connessione If MessageBox.Show("Rilevato un tentativo di connessione. Accettare?", Me.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then 'Ottiene l'oggetto TcpClient collegato al client Client = Listener.AcceptTcpClient() 'Ferma il listener Listener.Stop() 'Ottiene il network stream NetStream = Client.GetStream() Else Listener.Stop() Listener.Start() tmrConnections.Start() End If End If
Il codice che tenta di connettere il client è questo:
Client è un oggetto diverso, sempre di tipo TcpClient.codice:Dim IP As Net.IPAddress = Nothing 'Prima esegue un controllo sull'indirizzo IP per 'controllare che sia valido If Not Net.IPAddress.TryParse("127.0.0.1", IP) Then MessageBox.Show("IP non valido!", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation) Exit Sub End If IP = IPAddress.Parse("127.0.0.1") 'Quindi inizializza un client e tenta la connessione 'al dato IP sulla porta 5000 Client = New TcpClient() txtLog.AppendText("Client - tentativo di connessione..." & vbCrLf) Try Application.DoEvents() Client.Connect(IP, 5000) Catch Ex As Exception MessageBox.Show(Ex.Message) End Try 'Se la connessione ha avuto successo, ottiene il network 'stream e agisce sui controlli come nel codice precedente If Client.Connected Then txtLog.AppendText("Tentativo di connessione riuscito!" & vbCrLf) NetStream = Client.GetStream() EnableControls(True) Else txtLog.AppendText("Tentativo di connessione fallito..." & vbCrLf) End If
In entrambi txtLog è una textbox.
Ogni volta che tento di connettere il client (il server è sempre in ascolto) ricevo il messaggio di errore: "Impossibile stabilire una connessione. Rifiuto persistente del computer di destinazione 127.0.0.1:5000"
Cosa sto sbagliando?? Probabilmente sarà una cavolata ma è la prima volta che sviluppo una cosa del genere.
Grazie in anticipo.

Rispondi quotando