Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748

Поведение Winsock при зависании клиента

25.10.2010, 05:05. Показов 1365. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую.
Заметил странность в поведении Winsock...
Есть серверная машина, есть клиентская.
К серверу подключаться могут сразу много клиентов - для каждого создается свой экземпляр винсока. Но это не столь важно.
Дело в том, что если отключить клиента при помощи холодной перезагрузки (ресетом), то серверный винсок не генерирует никакого события (ни Close, ни Error)... По этому приходится запоминать время последнего обращения клиента и смотреть - если какой-то интервал превышен, то на сервере выключать.
Может быть, я чего-то не углядел? По идее должно событе Error генерироваться...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.10.2010, 05:05
Ответы с готовыми решениями:

Как сделать чтобы сервер на winsock ожидал клиента на любой порт??
Как сделать чтобы сервер на winsock ожидал клиента на любой порт??

Не приходят сообщения от клиента при неблокирующем режиме сокета \winsock
Привет, хочу реализовать простой обмен сообщениями в локальной сети, с блокирующем сокетом все работает, при переходе на неблокирующей...

Непонятное поведение winsock
Есть клиент-серверное приложение на протоколе TCP на синхронных сокетах. И вот при интенсивном тестировании выяснились странные вещи. При...

5
0 / 0 / 3
Регистрация: 28.01.2010
Сообщений: 279
25.10.2010, 12:34
У операции есть таймаут, при ресете сгенерится именно это событие вот по нему и определишь для кого таймаут вышел.
0
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
25.10.2010, 16:33  [ТС]
У какой операции? Можно немного подробнее?
0
0 / 0 / 3
Регистрация: 28.01.2010
Сообщений: 279
25.10.2010, 18:57
Это если как ты сказал Reset-ом бахнули:
Const sckNetReset = 10052 (&H2744)
Member of MSWinsockLib.ErrorConstants
Connection has timed out when SO_KEEPALIVE is set

А это если Таймаут вышел к чертям собачьим:
Const sckTimedout = 10060 (&H274C)
Member of MSWinsockLib.ErrorConstants
The attempt to connect timed out
0
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
26.10.2010, 02:57  [ТС]
Спасибо.
0
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
16.11.2010, 00:38  [ТС]
Как я понял без апишек здесь не обойтись...
Ну да ладно, пусть даже с ними...
Когда вызывать функцию WSAGetLastError() (вроде она, если не ошибаюсь)?
Как мне winsock сообщит, что что-то не так?
Повторюсь - событие Error не возникает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.11.2010, 00:38
Помогаю со студенческими работами здесь

Реализация консольного клиента на WinSock
Здравствуйте. Пишу консольного клиента на WinSock program Project2; {$APPTYPE CONSOLE} {$R *.res} uses ...

Клиент сервер Winsock + SDL. Форма клиента зависает
Проблема клиета: Форма SDL зацикливаеться циклом while и создается менюшка с кнопками и текстом тут все хорошо.Winsock тоже зацикливается...

HttpWebRequest прервать запрос при зависании
Добрый день, имеется такой код: Private Function Get_line(ByVal Prx_adress As String) As String Try Dim request...

Что делать при зависании браузера?
Привет! В моей программе браузер должен многократно загружать страницы, но иногда он зависает(). Что делать в этой ситуации? for l:=1 to...

Что делать при зависании Windows 8.1?
Выдали мне рабочий компьютер с windows 8.1 ... На нём провожу компиляции, которые длятся по по 5-10 часов, ибо базы данных большие очень....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru