Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Problema nell'invio di stringhe tramite internet
Forum - C# / VB.NET - Problema nell'invio di stringhe tramite internet

Avatar
Nitro (Member)
Pro


Messaggi: 72
Iscritto: 17/10/2007

Segnala al moderatore
Postato alle 17:58
Mercoledì, 26/03/2008
ciao a tutti.
Ho un problema nel mandare delle stringhe da un programma ad un'altro tramite la rete:praticamente la prima stringa che mando, arriva nell'altro computer e tutto va come deve andare, ma se ne mando un altra nn succede niente; io utilizzo questo codice per inviare una stringa:
Codice sorgente - presumibilmente VB.NET

  1. Private Client As New TcpClient
  2. Private NetStream As NetworkStream
  3.  
  4. 'codice per connetterlo ad un indirizzo IP
  5. Client.Connect("<IP>", 25)
  6.  
  7. 'e nel click di un pulsante metto questo:
  8. If Client.Connected Then
  9.  NetStream = Client.GetStream
  10.  stato.Text = "Connessione effettuata"
  11.  Dim bite() As Byte = ASCII.GetBytes(testo.Text)
  12.  NetStream.Write(bite, 0, bite.Length)
  13. end if


e questo è il codice che uso per inviare le stringhe. Quest'altro codice:
Codice sorgente - presumibilmente VB.NET

  1. Private client As New TcpClient
  2. Private listen As TcpListener
  3. Private stream As NetworkStream
  4.  
  5. 'nell'evento load del form (form di apertura del programma)
  6. listen = New TcpListener(25)
  7. listen.Start()
  8. controllo.Start()   'timer per il controllo di connessioni
  9.  
  10. 'e nell'evento Tick del timer Controllo questo:
  11. If listen.Pending Then
  12.    controllo.Stop()
  13.    client = listen.AcceptTcpClient
  14.    stream = client.GetStream
  15.    listen.Stop()
  16.  If stream.CanRead Then
  17.   Dim bite(client.ReceiveBufferSize) As Byte
  18.   Dim msg As String
  19.   stream.Read(bite, 0, bite.Length)
  20.   msg = ASCII.GetString(bite)
  21.   textbox1.Text &= msg.Normalize
  22.  End If
  23.  listen.Start()
  24.  controllo.Start()
  25. End If


È il codice per ricevere e mettere in una textbox la stringa inviata.
Come mai la prima stringa che invio riesco a inviarla e a riceverla per visualizzarla, ma se ne invio altre non succede niente???
grazie molte per l'aiuto perchè è da un pomeriggio che cerco di risolvere senza alcun risultato buono.:D

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 16:46
Giovedì, 27/03/2008
Perchè la stringa viene letta solo quando Pending restituisce True (infatti hai messo due If nidificati). Questo evento si verifica solo alla connessione del client, e quindi solo alla prima volta. Devi separare il secondo If e metterlo in un altro timer.

PM Quote
Avatar
Nitro (Member)
Pro


Messaggi: 72
Iscritto: 17/10/2007

Segnala al moderatore
Postato alle 17:14
Giovedì, 27/03/2008
Ok ora provo.
Ti ringrazio molto, era importante:D
ciao:k:

PM Quote