2009-05-08 9 views
0

Ich verwende den folgenden TCP Sockets Server/Client Beispiel: http://www.codeguru.com/Csharp/Csharp/cs_network/sockets/article.php/c8781/Socket Server trennen und erneut verbinden Puffer Fehler?

ich auch die folgenden Crypto Beispiel mit: http://www.obviex.com/samples/Encryption.aspx

Problem: Beide Server und Clients kommunizieren perfekt, bis ich die Server-Buchse Stopp , warten Sie eine Minute oder so, dann starten Sie den Server-Socket. Manchmal, aber nicht immer erhalte ich einen base64 Fehler in der Encryption.aspx on line ‚Convert.FromBase64String (Chiffretext);‘ ...

Ich weiß, es ist nicht in Ordnung/beschädigte Daten im Puffer wahrscheinlich übrig gebliebenen von dem Stopp Steckdose. Dann kommen die neuen Daten und der Fehler tritt auf.

Q. Wird die 'Klasse SocketPacket; dieses Problem lösen?

Q. Wie lösche ich die 'Klasse SocketPacketsocketBuffer'?

Andere Vorschläge werden sehr geschätzt ..

Antwort

0

Eines der Dinge, die Sie finden können geschieht, ist, dass eine der Buchsen ist nicht richtig geschlossen ist, nach unten. Die Sache mit Sockets ist, dass Sie sicherstellen müssen, dass sie korrekt geschlossen werden, oder Sie setzen den Server-Socket, um die Adresse wiederzuverwenden.

Versuchen Sie tcpview von sysinternals, um den Status von Sockets anzuzeigen. Sie können netstat auch verwenden, um den Status der Sockets anzuzeigen.