[VB.NET]Problema invio messaggi TCP/IP

giovedì 25 ottobre 2012 - 20.23

giorgiom84 Profilo | Newbie

Salve a tutti, ho il seguente problema:
devo creare un programmino, client, che tramite tcp/ip deve scambiare stringhe di testo, con un' altra applicazione già predisposta. In particolare questa applicazione è un programma di trading che apre un Socket TCP/IP in ascolto sulla porta 10001 e attende i messaggi provenienti dal client.
Ora, per quanto riguarda la ricezione dei dati non ho problemi, ma quando provo ad inviare messaggi all' applicazione non ottengo nessun responso e non so come risolvere, stò uscendo pazzo.
Il codice che ho scritto finora è il seguente:




Imports System.Net.Sockets 'Libreria per gestire i sockets
Imports System.Text.UTF8Encoding 'Libreria per decodificare in UTF8
Imports System.Text

Public Class Form1
Dim cliente As New TcpClient 'Variabile client
Dim flusso As NetworkStream 'Variabile flusso di dati client-server
Dim encoding As New System.Text.UTF8Encoding()

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
cliente.Connect("127.0.0.1", 10001) 'Connetti cliente all'indirizzo 127.0.0.1 attraverso la porta 10001
If cliente.Connected Then 'Se cliente è connesso allora... (cioè se il server è in ascolto)
TextBox3.Text = TextBox3.Text & "Connesso!" & vbCrLf 'Scrivo in TextBox3
flusso = cliente.GetStream() 'flusso è l’invio/ricezione (Stream) di dati con il server al quale cliente è connesso
Timer1.Start() 'Avvio Timer1
Else 'Altrimenti...
TextBox3.Text = TextBox3.Text & "Il server non risponde!" & vbCrLf 'Scrivo in TextBox3
End If 'Fine se
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If cliente.Available > 0 Then 'Se i dati che ricevi dal server al quale è connesso cliente sono disponibili e sono maggiori di 0
Dim temp(cliente.Available - 1) As Byte 'Dichiaro un array con dimensioni uguali al numero di dati ricevuti da cliente meno 1
flusso.Read(temp, 0, temp.Length) 'Leggo il flusso di dati
Dim testo As String = UTF8.GetString(temp) 'Decodifica temp in stringa UTF8 e mettila in testo
TextBox3.Text = "Server: " & testo 'Scrivo nella TextBox3
End If 'Fine se
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
TextBox3.Text = "Client: " & TextBox2.Text & vbCrLf 'Scrivo nella TextBox3
Dim temp() As Byte = System.Text.Encoding.ASCII.GetBytes(TextBox2.Text) 'Decodifica la stringa in TextBox2 in bytes e metti ogni byte nell'array temp
flusso.Write(temp, 0, temp.Length) 'Scrivi il flusso di dati
flusso.Flush()
End Sub

End Class




Il problema è nella parte di codice eseguita alla pressione del tasto button2, l' applicazione dovrebbe ricevere il valore della textbox2.text e restituire determinate informazioni in risposta che però non arrivano mai... .... se qualcuno è in grado di aiutarmi glie ne sarei infinitamente riconoscente,
grazie.

pieroalampi Profilo | Expert

il servizio di messag. è su???
SE RITIENI CHE LA RISPOSTA SIA RISOLUTIVA CHIUDI IL POST CLICCANDO SU ACCETTA
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5