in allegato :D
mi serviva per testare un client del mio progetto OTVA , magari vi puo' essere utile.
qui' riporto il codice del main:
' Gambas class file
Private TcpConnection As New Socket As "TcpConnection" 'connessione tcpip ... notare che senza As "TcpConnection" si connette ma non genera eventi
Public Risposta As String 'e' la stringa che contiene la stringa di ritorno dal server MLT
Public Ritorno As New String[] 'e' il vettore di stringhe che immagazzinanao le righe ritornate dal server telent MLT
Public Sub _new()
End
Public Sub Form_Open()
End
Public Sub TcpConnection_read()
'****************************************
' When some data arrives from the remote
' part of the socket, "DataAvailable" event
' is raised
'****************************************
If TcpConnection.Status = Net.Connected Then
Read #TcpConnection, Risposta, Lof(TcpConnection)
Ritorno.Add(risposta)
Print risposta
End If
End
Public Sub Button_connect_Click()
Dim Stringa As String
If TcpConnection.Status = Net.Connected Then
Button_connect.Text = "connect"
TcpConnection.Close
Return 'esco dalla procedura senno' rieseguirei il codice sottostante :D
Else
TcpConnection.Host = TextBox_hostIP.Text
TcpConnection.Port = CInt(TextBox_Port.Text)
Endif
Timer_timeout.Start 'faccio partire il timer del timeout
Ritorno.Clear 'cancello il vettore delle risposte da parte del server telnet
TcpConnection.Connect() 'tento di aprire la connessione
Do
Wait 'aspetto indefinitamente MA LASCIO CHE GLI EVENTI SI GENERINO
Print TcpConnection.Status 'stampo lo stato della connessione in consolle di debug
Loop Until (TcpConnection.Status = Net.Connected) Or (Timer_timeout.Enabled = False) 'attendo fino a che non sono connesso o vado in time out
If TcpConnection.Status = Net.Connected Then
Button_connect.Text = "disconnect"
'visualizzo la risposta del server
TextArea_risposta.Clear
Do
Wait
Loop Until Ritorno.Count > 0
For Each Stringa In Ritorno
Stringa = Replace(Stringa, "\r", "")
Stringa = Replace(Stringa, "\n", "")
TextArea_risposta.Text = TextArea_risposta.Text & gb.CrLf & Stringa
Next
Else
TcpConnection.Close
Endif
End
Public Sub Timer_timeout_Timer()
Timer_timeout.Enabled = False
End
Public Sub Button_send_Click()
Dim Comando As String
Dim Stringa As String
If Button_connect.Text = "connect" Then Return
If TextBox_comando.Text = "" Then Return
comando = TextBox_comando.Text & "\n\r"
If TcpConnection.Status = Net.Connected Then
Write #TcpConnection, Comando, Len(Comando)
End If
'svuoto il vettore di stringhe con la risposta dal server
Ritorno.Clear
'visualizzo la risposta del server
TextArea_risposta.Clear
Do
Wait
Loop Until Ritorno.Count > 0
For Each Stringa In Ritorno
Stringa = Replace(Stringa, "\r", "")
Stringa = Replace(Stringa, "\n", "")
TextArea_risposta.Text = TextArea_risposta.Text & gb.CrLf & Stringa
Next
End
dopo alcuni test mi sono accorto che il dialogo con la mia applicazione target (il server melted per il play dei video) aveva dei problemi.
con alcuni collaboratori abbiamo identificato il bug in questa riga:
comando = TextBox_comando.Text & "\n\r"
che invece deve essere cosi':
comando = TextBox_comando.Text & "\n"