Je me bats beaucoup avec ce code que j'essaie de mettre au travail. J'ai réussi à établir une connexion avec l'objet TcpClient à deux machines distantes séparées et à leur transmettre des données. Essentiellement, j'essaie de me connecter à la machine 1 sur le port 80 et envoyer une demande GET. Une fois que j'ai envoyé la demande, je veux garder la connexion en vie afin que le logiciel de l'autre côté puisse m'envoyer des données quand il est prêt. Comment garder la connexion ouverte et lire les données à chaque fois qu'elles sont disponibles dans le flux? J'ai essayé et essayé en utilisant NetworkStream.Read et BeginRead en vain. Le plus proche que je suis venu dormait mon fil toutes les 30 secondes et ensuite faire une autre requête GET qui n'est pas nécessaire. Voici le code actuel que j'ai pour lire dans le flux. Je sais que je dois une boucle ici quelque part:Comment utiliser .NET NetworkStream et TcpClient pour se connecter à une adresse IP distante et attendre les données?
Note: RemoteSocket est mon objet TcpClient qui est connecté par ce point
Dim serverStream As NetworkStream = RemoteSocket.GetStream()
rqst = "GET /Control/Clip_Forwarding_Stream?CameraName=" & URL_Encode(Name) & " HTTP/1.0" & vbCrLf & vbCrLf
Dim stream As Byte() = Encoding.GetEncoding("Windows-1252").GetBytes(rqst)
serverStream.Write(stream, 0, stream.Length)
Dim inStream(1024) As Byte
Dim recv = serverStream.Read(inStream, 0, inStream.Length)
Dim data = Encoding.GetEncoding("Windows-1252").GetString(inStream, 0, recv)
Ce que je fais avec des données est passer à cette méthode:
Note: ForwardSocket est mon autre objet TcpClient qui est connecté par ce point
Dim serverStream As NetworkStream = ForwardSocket.GetStream()
Dim stream As Byte() = Encoding.GetEncoding("Windows-1252").GetBytes(data)
serverStream.Write(stream, 0, stream.Length)
Tous les exemples peuvent être en C# ou VB comme je suis le plus à l'aise avec C# juste eu à écrire ce tout en VB.