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

Вниз

Помогите с ошибками сокетов, плиз!   Найти похожие ветки 

 
ws ©   (2003-07-11 11:16) [0]

Господа! Есть программа, сервер и стадо клиентов на компах сети (около 100 компов)... Все компы интенсивно обмениваются текстовыми сообщениями через сервер, сокет неблокирующий, очереди сообщений есть, все работает корректно за исключением одного! В OnClientError на сервере я устанавливаю признак клиента (в базе пользователей) в OFFLINE и очищаю буфер для отправки ему сообщений через OnWrite. Но на практике заметил, что сокет после ошибки зачастую остается на связи и (что видно в логах) корректно посылает сообщения серверу.
Подскажите, как правильно обрабатывать ошибки!


 
Digitman ©   (2003-07-11 12:00) [1]


> В OnClientError на сервере я устанавливаю признак клиента
> в OFFLINE


На основании чего ты сделал умозаключение, что факт возникновения события OnClientError() говорит исключительно о дисконнекте клиента и ни о чем другом ? Где это написано ?
Почему ты, не проанализировав ErrorCode, сразу "упек" клиента в офлайн-статус ?


> и очищаю буфер для отправки ему сообщений через OnWrite


опять же - почему ? если, к примеру, произошла ошибка таймаута, то почему ты лишаешь клиента возможности дополучить то, что ему адресовано, лишь на основании того, что в какой-то момент сеть была перегружена, и в результате возникших кратковременно коллизий SYN-ACK-пакет от клиента не был получен сервером вовремя ?


 
ws ©   (2003-07-11 12:15) [2]

Вот я почему и спрашиваю... (
Где взять коды ошибок? Я в хелпе не нашел...

Не подскажете?


 
Digitman ©   (2003-07-11 12:33) [3]


> в хелпе не нашел


плохо искал.

хэлп - стандартный, обзывается он "Windows Sockets 2 Reference"

следует смотреть коды ошибок, относящихся к ф-циям send() и recv().
в хэлпе ты увидишь лишь символьные их идентификаторы, числовые же значения же констант, им соответствующих, ты найдешь в модуле winsock[2].pas.


 
ws ©   (2003-07-11 12:38) [4]

Спасибо за совет, иду искать.


 
ws ©   (2003-07-14 08:48) [5]

Очередная проблема: сокеты в основном выдают ошибки 53 (WSAECONNABORTED) и 54 (WSAECONNRESET), что, имхо, свидетельствует о прекращении связи... Но! Вернув такую ошибку, сокет-клиент продолжает посылать сообщения и сервер их принимает!
:( Ничего не понимаю! Помогите, плиз, кто может!


 
Digitman ©   (2003-07-14 09:56) [6]

приводи код клиента и сервера.



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

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

Наверх




Память: 0.48 MB
Время: 0.032 c
3-48478
AlexTregubov
2003-08-22 15:33
2003.09.15
Запарился я с таблицами


3-48471
Nikkkkk
2003-08-22 17:48
2003.09.15
Опять вопрос по TQuery (и по синтаксису запросов)


14-48746
Maxim Pshevlotsky
2003-08-27 08:16
2003.09.15
Пытаюсь нормально запустить KOL библиотеку.......


9-48385
Smola
2003-03-08 13:49
2003.09.15
Можно ли увеличить допустимый размер дмф файла


1-48597
Basilio
2003-09-04 16:31
2003.09.15
Рождение потомка TStringList