ALLELUJA ALLELUJA!!!!!
per la serie "sono un pollo" ...... il server telnet aspetta un Carriage Return per passare all'interprestazione dei comandi .....
quindi e' bastato aggiungere al comando inviato al telent (nel mio caso per esempio "uls") il carattere CR ovvero chr(10) ... poi inviarlo
Public Function MLTCommand(comando As String) As Boolean
hTim = New Timer As "Timer1"
hTim.Delay = 10000 '10 secondi di timeout
hTim.Enabled = True 'poi aspetto per il time out
If TcpConnection.Status = Net.Connected Then
Comando = comando [b]& Chr(10)[/b]
Write #TcpConnection, Comando, Len(Comando)
End If
Print "comando: " & Comando
hTim.Enabled = True 'poi aspetto per il time out per la risposta dal server
Do
Wait
Loop Until (Risposta <> "") Or (hTim.Enabled = False)
If hTim.Enabled = False Then
Return False
End If
Print Risposta
hTim.Stop
End
ora il probelma e' che la procedura:
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)
Print Risposta
End If
End
mi ritorna una sola stringa, ma l'output del server puo' essere una serie di righe in serie.
Ovvero, questo e' quello che restituisce il server utilizzandolo via telnet/bash:
201 OK
U0 00 sdl_preview:384x288 1
e questo e' quello che restituisce la procedura di lettura sopra indicata:
201 OK