2012-03-05 4 views
-1

У меня есть приложение Sever-Client, которое использовалось для отправки и получения sms, которое работает нормально до последнего месяца. Но после этого я получил исключение сокета TCP/Ip. Я отлаживаю серверное приложение и обнаружил исключение:Исключение Tcp/IP Socket

System.IO.IOException: Не удалось прочитать данные из транспортного соединения: существующее соединение было принудительно закрыто удаленным хостом. ---> System.Net.Sockets.SocketException: существующее соединение было принудительно закрыто удаленным хостом в System.Net.Sockets.Socket.EndReceive (IAsyncResult asyncResult) в System.Net.Sockets.NetworkStream.EndRead (IAsyncResult asyncResult)

У меня такое же исключение на клиенте, когда я отлаживаю больше. Я прошел через многие темы, похожие на это. Люди считают, что это проблема, связанная с сетью, поскольку порт блокировки брандмауэра/NAT/Antivirus, из-за этого соединения между клиентом & сервер получает беспокойство. Я использовал порт 2999, и несколько клиентов обменивались данными с сервером на одном и том же порту. Любые подсказки? что является точной причиной?

+1

Вы пробовали посмотреть, что происходит на сетевом уровне с Wireshark? Если нет, сделайте это и включите эту информацию в свой вопрос. –

+0

Кроме того, если он действительно работал отлично до последнего месяца, единственные изменения, которые имеют смысл *, - это изменения конфигурации порта в брандмауэре/nat/антивирусе. – Jason

+0

Может ли хост измениться на https? – Induster

ответ

1

Это происходит постоянно или только иногда? если это просто случается каждый раз, что я делаю, это помещать его в файл try catch, и когда эта ошибка будет пересоздана, попробуйте еще раз и запишите, что это произошло, и когда все это происходило, когда оно было брошено таким образом вы можете вернуться и выяснить, в чем проблема, когда вы получаете больше информации о том, когда ее бросают. если это происходит все время, то что-то заставляет ваше соединение закрывать ведьму, может быть брандмауэром, поэтому для тестирования я бы отключил все ваши брандмауэры и антивирусы.

+0

Это случается иногда. Я реализовал журналы в своем приложении (try, catch), а при исключении я перезапускаю клиент для его повторного подключения, иногда это работает, а иногда и клиент не удается подключиться. –

+0

Это разные компьютеры или тот же компьютер, который вызывает эту ошибку? или где-нибудь вы не зацикливаетесь назад, и все заканчивается без закрытия сокета? если вы можете опубликовать часть своего кода, это может помочь. – Shredder2500

+0

Да Сервер находится на разных компьютерах и клиент существует на разных компьютерах. –

Смежные вопросы