Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - vb.net  programma client non si connette a programma server
Forum - C# / VB.NET - vb.net programma client non si connette a programma server

Avatar
Lafa_96 (Normal User)
Pro


Messaggi: 111
Iscritto: 09/03/2011

Segnala al moderatore
Postato alle 19:01
Venerdì, 01/04/2011
allora sto creando un programma di chat e ho questo problema, quando connetto il client al server sul mio pc (uso tutti e 2 programmi sul mio pc come se chattassi da solo) tutto ok, ma quando provo a connetterlo con un mio amico per chattare va in errore! io uso una chiavetta mentre il mio amio ha la adsl così il server è lui!
Ho provato anche a cambiare piu volte la porta ma niente!!
ecco i codici


server
Codice sorgente - presumibilmente VB.NET

  1. Imports System.Net.Sockets
  2. Imports System.Text.UTF8Encoding
  3. Public Class Form1
  4.     Dim ascoltatore As TcpListener
  5.     Dim cliente As TcpClient
  6.     Dim flusso As NetworkStream
  7.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  8.         Dim temporaneo() As Byte = UTF8.GetBytes(TextBox1.Text)
  9.         flusso.Write(temporaneo, 0, temporaneo.Length)
  10.         RichTextBox1.Text = RichTextBox1.Text & TextBox1.Text & vbCrLf
  11.         TextBox1.Text = ""
  12.         TextBox1.Select()
  13.     End Sub
  14.  
  15.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  16.         ascoltatore = New TcpListener(8888)
  17.         ascoltatore.Start()
  18.         Timer2.Start()
  19.         RichTextBox1.Text = RichTextBox1.Text & "Sonon in attesa di qualcuno..." & vbCrLf
  20.     End Sub
  21.  
  22.     Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
  23.         If ascoltatore.Pending() Then
  24.             Timer2.Stop()
  25.             cliente = ascoltatore.AcceptTcpClient
  26.             ascoltatore.Stop()
  27.             flusso = cliente.GetStream
  28.             Timer1.Start()
  29.             RichTextBox1.Text = RichTextBox1.Text & Now() & "Si è conneso un utente" & vbCrLf
  30.  
  31.         End If
  32.     End Sub
  33.  
  34.     Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  35.         If cliente.Available > 0 Then
  36.             Dim temporaneo(cliente.Available - 1) As Byte
  37.             flusso.Read(temporaneo, 0, temporaneo.Length)
  38.             Dim testo As String = UTF8.GetString(temporaneo)
  39.             RichTextBox1.Text = RichTextBox1.Text & testo & vbCrLf
  40.         End If
  41.     End Sub
  42.  
  43.     Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus
  44.         Me.AcceptButton = Button1
  45.     End Sub
  46.  
  47.     Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
  48.         Me.AcceptButton = Button1
  49.     End Sub
  50.  
  51.     Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick
  52.         RichTextBox1.SelectionStart = RichTextBox1.TextLength
  53.         RichTextBox1.ScrollToCaret()
  54.     End Sub
  55. End Class



client
Codice sorgente - presumibilmente VB.NET

  1. Imports System.Net.Sockets
  2. Imports System.Text.UTF8Encoding
  3. Public Class Form1
  4.     Dim cliente As TcpClient
  5.     Dim flusso As NetworkStream
  6.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  7.  
  8.     End Sub
  9.  
  10.     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  11.         Dim indirizzo As Net.IPAddress
  12.         Net.IPAddress.TryParse(TextBox3.Text, indirizzo)
  13.         cliente = New TcpClient
  14.         cliente.Connect(indirizzo, 8888)
  15.         If cliente.Connected Then
  16.             RichTextBox1.Text = RichTextBox1.Text & "Connessione avvenuta" & vbCrLf
  17.             flusso = cliente.GetStream()
  18.             Timer1.Start()
  19.         Else
  20.             RichTextBox1.Text = RichTextBox1.Text & "Connessione fallita" & vbCrLf
  21.             MsgBox("Connessione fallita", MsgBoxStyle.Critical, "ERRORE!")
  22.         End If
  23.     End Sub
  24.  
  25.     Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  26.         If cliente.Available > 0 Then
  27.             Dim temporaneo(cliente.Available - 1) As Byte
  28.             flusso.Read(temporaneo, 0, temporaneo.Length)
  29.             Dim testo As String = UTF8.GetString(temporaneo)
  30.             RichTextBox1.Text = RichTextBox1.Text & testo & vbCrLf
  31.  
  32.         End If
  33.     End Sub
  34.  
  35.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  36.         Dim temporaneo() As Byte = UTF8.GetBytes(TextBox1.Text)
  37.         flusso.Write(temporaneo, 0, temporaneo.Length)
  38.         TextBox1.Text = ""
  39.     End Sub
  40.  
  41.     Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus
  42.         Me.AcceptButton = Button1
  43.     End Sub
  44.  
  45.     Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
  46.         Me.AcceptButton = Button1
  47.     End Sub
  48.  
  49.     Private Sub TextBox3_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox3.GotFocus
  50.         Me.AcceptButton = Button2
  51.     End Sub
  52.  
  53.     Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged
  54.         Me.AcceptButton = Button2
  55.     End Sub
  56.  
  57.     Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick
  58.         RichTextBox1.SelectionStart = RichTextBox1.TextLength
  59.         RichTextBox1.ScrollToCaret()
  60.     End Sub
  61. End Class
  62.  
  63. grazie in anticipo!





Non hai bisogno di vedere l’intera scalinata. Inizia semplicemente a salire il primo gradino. (Martin Luther King)
PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Up
0
Down
V
Segnala al moderatore
Postato alle 3:10
Sabato, 02/04/2011

controlla con questo servizio se la porta che il tuo amico sceglie sul server è aperta verso l'esterno http://www.canyouseeme.org/

se non è aperta (sicuramente) è necessario modificare la configurazione del NAT del router specificando di indirizzare la porta che avete scelto verso l'ip locale del suo computer all'interno della rete lan.


ho provato la porta 8888 e come previsto non funziona! tra qualche giorno vado a casa di questo mio amico, solo che non sono per niente pratico di router e robe varie, quindi come la modifico la config del nat in modo che possa connettersi al mio ip? geazie in anticipo! - Lafa_96 - 02/04/11 13:25
mi correggo il mio amico l'ha provata! - Lafa_96 - 02/04/11 13:27


Ingegnere Informatico
https://ldlagency.it
PM