2013-05-08 3 views
0

J'ai deux application dont l'un est serveur et l'autre est client écrit en VB.net. tous les deux s'exécutent sur la même machine (utilisant 127.0.0.1) client envoie seulement 5 octets de données au serveur par exemple: "farid" mais l'application de serveur qui a l'écouteur TCP reçoit une énorme quantité de données avec une longueur de 65534 octets. J'ai essayé d'imprimer les données reçues et il a imprimé "farid" avec beaucoup d'espaces vides en face de lui Je suis sûr que le client TCP envoie les bonnes données, mais je n'ai aucune idée de ce qu'il advient des données quand l'écouteur les reçoit .TCP écouteur reçoit des données énormes

+3

Pouvez-vous un peu de code pour montrer VOtrE client et le serveur. – James

+0

TCP est lourd ... ne tient pas tout à fait compte de votre taille actuelle, mais ... http://stackoverflow.com/questions/3613989/what-of-traffic-is-network-overhead-on-top-of -http-s-requests – FlavorScape

+0

Quel protocole utilisez-vous sur les sockets? Pouvez-vous poster un échantillon des données de votre envoi? – Kyght

Répondre

1

Le tutoriel que vous utilisez a des pratiques et des erreurs horribles dans ce ... = \

La boucle de réception en getMessage() devrait ressembler davantage:

Private Sub getMessage() 
    Dim inStream(10024) As Byte 
    serverStream = clientSocket.GetStream() 
    While True 
     Dim bytesRead As Integer = serverStream.Read(inStream, 0, inStream.Length) 
     readData = System.Text.Encoding.ASCII.GetString(inStream, 0, bytesRead) 
     msg() 
    End While 
End Sub 

* Utilisation de la chaîne globale "readData" est un très mauvais design bien!

Vous devriez lire mon article ici de près: A Peer-To-Peer LAN Chat Application in Visual Basic.Net using TcpClient and TcpListener

Questions connexes