sys/socket.h
Создаю слушающий сокет TCP
Сокет as=accept(.....
Как для as отследить звершение соеднения клиентом?
Спасибо
>sys/socket.h
>Создаю слушающий сокет TCP
>Сокет as=accept(.....
>Как для as отследить звершение соеднения клиентом?recv вернёт что-нибудь < 1
send вернёт < 0
>sys/socket.h
>Создаю слушающий сокет TCP
>Сокет as=accept(.....
>Как для as отследить звершение соеднения клиентом?
>Спасибо
while (int bytes = recv(...)) {}
будет читать и нормально обработает разрыв коннекта либо тобой либо сервером.
>while (int bytes = recv(...)) {
>
>}
>
>будет читать и нормально обработает разрыв коннекта либо тобой либо сервером.Надо делать две проверки bytes после выхода из цикла только. На 0 (закрытие соединения) и на -1 (ошибка). В первом случае все OK и соединение закрыто, во втором надо лазить в errno и выяснять что случилось.
>>sys/socket.h
>>Создаю слушающий сокет TCP
>>Сокет as=accept(.....
>>Как для as отследить звершение соеднения клиентом?
>>Спасибо
>
>
>while (int bytes = recv(...)) {
>
>}
>
>будет читать и нормально обработает разрыв коннекта либо тобой либо сервером.Угу. и загрузит процессор до усрачки? select и poll у нас уже не модны?
>>>sys/socket.h
>>>Создаю слушающий сокет TCP
>>>Сокет as=accept(.....
>>>Как для as отследить звершение соеднения клиентом?
>>>Спасибо
>>
>>
>>while (int bytes = recv(...)) {
>>
>>}
>>
>>будет читать и нормально обработает разрыв коннекта либо тобой либо сервером.
>
>Угу. и загрузит процессор до усрачки? select и poll у нас уже
>не модны?
Пардоньте, а с каких это пор у нас recv на блокированном сокете грузит процессор? :-О Вообще-то он стоит на I/O wait'е потребляя при этом ->0% cpu. Сетевые демультиплексоры, это, конечно, вещь очень нужная и хорошая, но существуют примитивные задачи, где их применение избыточно...