class TcpClient et la commande Send/Recceive
Bonjour à tous,
j'ai un petit problème avec tcpclient.
J'ai une appli sur une autre machine à laquelle je me connecte à l'aide de la commande :
mTcpClient.Client.Connect(Ip, Port)
La connexion se fait bien car j'arrive à piloter l'autre machine en lui envoyant des commandes.
En revanche, lorsque j'envoie une commande qui demande une réponse, ça fonctionne aussi, mais avec un "train" de retard. Je m'explique :
Si je lui envoie :
- réponds moi "AAA", le client me répond avec qlq chose.
Je luis renvoie :
- réponds moi "AAA", le client me répond avec "AAA"
Je luis renvoie :
- réponds moi "OOO", le client me répond avec "AAA"
Je luis renvoie encore :
- réponds moi "OOO", le client me répond avec "OOO"
etc...
Donc le client me répond avec une commande de retard... et là je seche
Ci dessous le code et si une bonne âme peut m'aider, c'est cool ;)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
Protected Function SendCommand_Received(ByRef GETcommand As String) As String
Dim FinalGetCommand As String = ""
Dim retour As String = "No data sent"
FinalGetCommand = "1 " & GETcommand & Chr(0)
Dim msg As Byte() = Encoding.UTF8.GetBytes(FinalGetCommand)
Dim bytes(255) As Byte
Try
' Blocks until send returns.
Dim byteCount As Integer = mTcpClient.Client.Send(msg, SocketFlags.None)
' Get reply from the server.
byteCount = mTcpClient.Client.Receive(bytes, SocketFlags.None)
If byteCount > 0 Then
retour = Encoding.UTF8.GetString(bytes)
End If
Catch e As SocketException
Return e.ErrorCode
End Try
Return retour
End Function |
Merci
Patrick