Ошибка буфера Socket Server Reconnect и Reconnect? - PullRequest
0 голосов
/ 09 мая 2009

Я использую следующий пример сервера / клиента TCP-сокетов: http://www.codeguru.com/Csharp/Csharp/cs_network/sockets/article.php/c8781/

Я также использую следующий пример CryptoStream: http://www.obviex.com/samples/Encryption.aspx

Проблема: и сервер, и клиент отлично взаимодействуют, пока я не остановлю сокет сервера, подожду минуту или около того, затем запустите сокет сервера. Иногда, но не всегда, я получаю ошибку base64 в Encryption.aspx на строке 'Convert.FromBase64String (cipherText);' ...

Я знаю, что в буфере есть неправильные / поврежденные данные, вероятно, оставшиеся после остановки сокета. Затем приходят новые данные и возникает ошибка.

Q. Будет очищать 'класс SocketPacket; решить эту проблему?

Q. Как очистить 'класс SocketPacketsocketBuffer'?

Другие предложения приветствуются.

1 Ответ

0 голосов
/ 09 мая 2009

Одна из вещей, которые вы можете обнаружить, - это то, что одна из розеток закрыта неправильно. Дело в том, что с сокетами вам нужно убедиться, что они правильно закрыты, или вы устанавливаете сокет сервера для повторного использования адреса.

Попробуйте tcpview от sysinternals для просмотра состояния сокетов. Вы также можете использовать netstat для просмотра состояния сокетов.

...