The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как отследить завершение tcp соединеня клиентом"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как отследить завершение tcp соединеня клиентом"  
Сообщение от Tux email(??) on 18-Фев-07, 18:59 
sys/socket.h
Создаю слушающий сокет TCP
Сокет as=accept(.....
Как для as отследить звершение соеднения клиентом?
Спасибо
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Как отследить завершение tcp соединеня клиентом"  
Сообщение от ACCA (ok) on 21-Фев-07, 02:46 
>sys/socket.h
>Создаю слушающий сокет TCP
>Сокет as=accept(.....
>Как для as отследить звершение соеднения клиентом?

recv вернёт что-нибудь < 1
send вернёт < 0

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Как отследить завершение tcp соединеня клиентом"  
Сообщение от solaris (??) on 02-Май-07, 18:08 
>sys/socket.h
>Создаю слушающий сокет TCP
>Сокет as=accept(.....
>Как для as отследить звершение соеднения клиентом?
>Спасибо


while (int bytes = recv(...)) {

}

будет читать и нормально обработает разрыв коннекта либо тобой либо сервером.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Как отследить завершение tcp соединеня клиентом"  
Сообщение от ram_scan on 04-Май-07, 14:27 
>while (int bytes = recv(...)) {
>
>}
>
>будет читать и нормально обработает разрыв коннекта либо тобой либо сервером.

Надо делать две проверки bytes после выхода из цикла только. На 0 (закрытие соединения) и на -1 (ошибка). В первом случае все OK и соединение закрыто, во втором надо лазить в errno и выяснять что случилось.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Как отследить завершение tcp соединеня клиентом"  
Сообщение от Gregory on 05-Май-07, 19:39 
>>sys/socket.h
>>Создаю слушающий сокет TCP
>>Сокет as=accept(.....
>>Как для as отследить звершение соеднения клиентом?
>>Спасибо
>
>
>while (int bytes = recv(...)) {
>
>}
>
>будет читать и нормально обработает разрыв коннекта либо тобой либо сервером.

Угу. и загрузит процессор до усрачки? select и poll у нас уже не модны?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Как отследить завершение tcp соединеня клиентом"  
Сообщение от Alexander S. Salieff email on 08-Май-07, 18:10 
>>>sys/socket.h
>>>Создаю слушающий сокет TCP
>>>Сокет as=accept(.....
>>>Как для as отследить звершение соеднения клиентом?
>>>Спасибо
>>
>>
>>while (int bytes = recv(...)) {
>>
>>}
>>
>>будет читать и нормально обработает разрыв коннекта либо тобой либо сервером.
>
>Угу. и загрузит процессор до усрачки? select и poll у нас уже
>не модны?


Пардоньте, а с каких это пор у нас recv на блокированном сокете грузит процессор? :-О Вообще-то он стоит на I/O wait'е потребляя при этом ->0% cpu. Сетевые демультиплексоры, это, конечно, вещь очень нужная и хорошая, но существуют примитивные задачи, где их применение избыточно...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру