Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.23;
Скачать: CL | DM;

Вниз

Вопрос по сетям.   Найти похожие ветки 

 
Jo   (2002-07-11 12:39) [0]

TServerSocket, TClientSocket
На одной машине запушен сервер. На другой клиент. Принудительно разрываю связь. Как на клиенте отследить, что связь с сервером потеряна? Отправляю данные SendBuf, даже ошибку не выдает, что связь разорвана.


 
Fiend ©   (2002-07-11 12:44) [1]

То Jo
Я именно с эти компонентами не работал. Не знаю как они живут.
Но вот у меня есть приложение с поименованными каналами, в принципе подобная фишка. Может тебе их лучше использовать?

Достаточно просто. И работает абсолютно одинаково, независимо от того работаешь через сеть или обращаешся локально на машине.

Есть всякие функции, которые возвращают состояние коннекта. Да и когда передаёшь данные, сразу узнаешь, передались они или нет.

Могу нарезать примеров


 
Digitman ©   (2002-07-11 12:55) [2]

Организуй квитирование сообщений.

В ответ на запрос передающей стороны принимающая сторона должна ответить сообщением, подтверждающим прием запроса. Если, например, на 5-кратное повторение запроса (с опредеделенной задержкой между посылками очередных) передающей стороной в заданный период времени от принимающей стороны не получена "квитанция", подтверждающая прием, запрашивающая сторона должна разорвать логическое соединение по своей инициативе как недостоверное.
Это - концептуально. Как это реализовать - думай, вариантов - море. Но без событий и таймеров не обойтись.


 
Jo   (2002-07-11 13:04) [3]

ммда, геморойчик
All thx. To Fiend, если не сложно подкинь примеры, может что интересное найду.
wbr


 
Jo   (2002-07-11 13:44) [4]

Тут проблема в том, что у отпраляются много пакетов(мною сформированные) и если все время ждать подтверждение получения пакета, то клиентская часть будет все время стопариться. Плюс к этому, неизвестно сколько времени уходит на обработку данных от других клиентов.

---
И еще, я не пойму одного, данные отправляются TCP/IP пакетами. Но TCP должен же гарантировать что IP-дейтаграмма принята, или это не так?


 
Digitman ©   (2002-07-11 14:15) [5]

TCP гарантирует тебе, что в ответ на SYN-пакет передатчик получит от приемника как минимум :

ACK-пакет;
RST-пакет;

в данной ситуации передатчик ни черта не получит от приемника, поскольку физ.связь отсутствует, без нее логическая связь (на уровне собственно TCP-протокола) невозможна.

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


 
вумный ©   (2002-07-18 08:37) [6]

Я решил эту проблему так:
Посадил клиента на таймер(минута-вполне подходит) по отправке сообщений серверу
Перед отправкой нового сообщения проверяю вернулось ли прежнее
Если вернулось, то считаю сервер в работе.
Если нет, то извини.



Страницы: 1 вся ветка

Текущий архив: 2002.09.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
14-73859
easy
2002-08-28 15:15
2002.09.23
ПОЧЕМУ СОБАКИ ЛУЧШЕ, ЧЕМ МУЖЬЯ


3-73523
Nikolai_S
2002-08-30 18:26
2002.09.23
Перкачка данных из SQL Server в Access с пом. SQL-запросов (2)


3-73532
Starter2
2002-09-02 16:36
2002.09.23
Help me !


1-73709
Alex_Che
2002-09-11 11:34
2002.09.23
Звук


4-73919
MrAngel
2002-07-26 11:18
2002.09.23
Как получить HWND у кнопки TComboBox или TScrollBar ?