2009-05-08 6 views
0

J'utilise l'exemple des sockets TCP suivant Serveur/Client: http://www.codeguru.com/Csharp/Csharp/cs_network/sockets/article.php/c8781/Socket Server déconnecter et reconnexion erreur tampon?

J'utilise aussi l'exemple CryptoStream suivant: http://www.obviex.com/samples/Encryption.aspx

Problème: le serveur et les clients communiquent parfaitement jusqu'à ce que j'arrête le socket du serveur , attendez environ une minute, puis démarrez le socket serveur. Parfois mais pas toujours je reçois une erreur de base64 dans le Encryption.aspx sur la ligne 'Convert.FromBase64String (cipherText);' ...

Je sais qu'il y a des données incorrectes/corrompues dans la mémoire tampon probablement restées de l'arrêt du prise. Ensuite, les nouvelles données arrivent et l'erreur se produit.

Q. Supprime le 'SocketPacket de classe'; résoudre ce problème?

Q. Comment effacer le 'class SocketPacketsocketBuffer'?

Autres suggestions sont très appréciés ..

Répondre

0

L'une des choses que vous pouvez trouver qui se passe est que l'une des prises de courant n'est pas en train de fermer correctement. La chose avec les sockets est que vous devez vous assurer qu'ils sont correctement fermés ou que vous définissez le socket serveur pour réutiliser l'adresse.

Essayez tcpview à partir de sysinternals pour afficher l'état des sockets. Vous pouvez également utiliser netstat pour afficher l'état des sockets.

Questions connexes