Я инженер-программист, но думаю, что моей проблеме нужен сетевой инженер ...
Что касается программного обеспечения, взгляните на мой вопрос о переполнении стека: https://stackoverflow.com/questions/21641219/sending-and-receiving-over-network-using-tcpclient-socket-or-stream-fails-afte
У меня есть простейшая возможная строка с префиксом длины для отправки и получения клиента и сервера. Клиент читает строку ввода, отправляет ее на сервер, а затем ждет ответа. Сервер считывает строку запроса, а затем возвращает ее обратно.
Я обнаружил, что могу выполнить пять операций отправки и получения, а затем на шестой попытке клиент сообщает, что отправил строку текста, и пытается получить ответ сервера. Сервер не показывает, что он что-то получил. И это как часы, каждый раз по пять раз. Вчера рано утром это было последовательно трижды. Сейчас пять. Какая извращенная система так себя ведет?
Клиент работает в моем офисе, Win7-64. Сервер работает в AWS, Win2k8R2.
Я пробовал отключить брандмауэры клиента и сервера. Я пробовал другой AWS EC2.
Wireshark говорит, что выполняет повторные передачи TCP в случае зависания. В конце концов клиент выдает исключение «соединение разорвано». Позже сервер делает то же самое.
Любые идеи?
Оказывается, наша корпоративная сеть блокировала исходящий трафик, идущий на порт сервера. Не уверен, почему это вообще сработало X раз, но после того, как сетевые ребята пошутили, все заработало. Спасибо за вашу помощь и идеи.