faq обучение настройка
Текущее время: Чт апр 25, 2024 19:15

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: Вт окт 28, 2003 21:47 
Не в сети

Зарегистрирован: Вт окт 28, 2003 21:07
Сообщений: 1
Конфигурация. Имеется два компа, подключаемых в инет через два маршрутизатора - DI-704P (HW:B1) и DI-604 (HW:B2). Настройки маршрутизаторов вроде в порядке. Инет виден, связь есть с обоих компов.

Задача. Есть небольшая программка, которая представляет из себя клиент/серверное приложение, умеющее посылать/принимать данные по TCP-каналу. Приложение использует стандартный набор BSD-шных функций для работы с TCP/IP (socket, connect, bind, accept, send, recv и т.п.). Приложение может либо отсылать данные (send), либо получать данные (recv) - это определяется параметром запуска программы. Соответственно, для соединения двух компов (A и B) мы имеем 4 возможных варианта коммуникации:
1. комп A - отсылающий сервер, комп B - принимающий клиент
2. комп A - принимающий сервер, комп B - отсылающий клиент
3. комп A - отсылающий клиент, комп B - принимающий сервер
4. комп A - принимающий клиент, комп B - отсылающий сервер

Проблема. Допустим, комп A соединен с DI-704P (соответственно, комп B с DI-604). Если пробовать все 4 вышеперечисленных варианта коммуникаций, то работают только 3 из них. Стабильно не работает вариант "3. комп A - отсылающий клиент, комп B - принимающий сервер". Нерабочесть проявляется в том, что все проходит нормально, клиент с сервером друг друга видят, связь налаживается, но вот как только дело доходит до посылки данных, наступает затык. На стороне компа B приложение получает от 3-х до нескольких сотен байт и все, дальше все останавливается. Если это дело не прерывать, то через какое-то время (порядка минуты) клиент на компе A закончит очередную попытку посылки с отрицательным ответом, ответит, что связь потеряна, и программы заканчивают работу.

PS. Если убрать из этой цепочки маршрутизаторы и подключить компы напрямую в инет (посадить их на внешние IP-адреса), то все работает великолепно во всех вариантах.

PSS. Если убрать из цепочки только один из маршрутизаторов (неважно какой), то все работает великолепно во всех вариантах.

PSSS. Я сначала думал, что что-то не так в приложении и чего-то не то делаю с сокетами. Но потом нашел похожий пример приложения WSOCK из набора примеров Microsoft MSDN. С ним ситуация абсолютно такая же.

Вопрос. Сталкивался ли кто-нибудь с подобной проблемой? Что можете мне посоветовать?

Буду очень признателен, если копия ответа будет выслана мне мылом на ara@tract.ru


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 144


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB