19/05/2023: A causa di un errore sono stati cancellati, insieme ad account creati da bot, alcuni account legittimi. Si prega di leggere qui: https://www.gambas-it.org/smf/index.php?topic=9733.0
' Gambas class filePrivate TcpConnection As New Socket As "TcpConnection" 'connessione tcpip ... notare che senza As "TcpConnection" si connette ma non genera eventiPublic Risposta As String 'e' la stringa che contiene la stringa di ritorno dal server MLTPublic Ritorno As New String[] 'e' il vettore di stringhe che immagazzinanao le righe ritornate dal server telent MLTPublic Sub _new()EndPublic Sub Form_Open()EndPublic 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 EndPublic 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 EndPublic Sub Timer_timeout_Timer() Timer_timeout.Enabled = FalseEndPublic Sub Button_send_Click()Dim Comando As StringDim 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
Io continuo ad essere del parere che cose come queste andrebbero esposte nella nostra WIKI !
comando = TextBox_comando.Text & "\n\r"
comando = TextBox_comando.Text & "\n"