2012-09-13 2 views
0

Я пытаюсь разработать асинхронное TCP-сервер-клиентское приложение. В моем приложении я использую статью MSDN в качестве начальной точки. Я изменил блок кода для передачи сериализованных объектов вместо передачи строки. И я передаю большие данные в этих объектах несколькими пакетами.C# Асинхронная связь TCP-сокета падает на 2.try по отдельным компьютерам в сети

На моей локальной машине все нормально: в начале клиент подключается, сервер принимает и подключается до конца. Клиент отправляет запрос, когда я запускаю и запускаю ожидающие данные, сервер получает данные, а сервер немедленно возвращает результат отправки, клиент получает этот результат, и операция завершена. Пока подключена система, я снова запускаю клиент и транзакция повторяется. Сколько раз я запускаю все, что работает нормально.

Но в любом другой интрасеть компьютера, клиент начинает соединение, сервер принимает и транзакция работает отлично в первый раз .. Но при второй попытке, сервер отвечать на результат, но клиентское приложение суспендирующее на BeginReceive-EndReceive цикла ...

Что не так? Есть ли какое-либо ограничение на работу для инфраструктуры asynch .net C# TCP?

+0

Показать Ваш код. –

ответ

0

Без кода трудно сказать, но проверьте настройку keepalive (попробуйте отключить его).

+0

Это должен быть комментарий. –

+0

Я считал это, но поскольку отключение keepalive - это возможное решение, я решил, что опубликую его в качестве ответа. –

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