The OpenNET Project / Index page

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

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

"правельно ли то что мне ни send ни recv никогда не возвращаю..."
Сообщение от dimchik emailИскать по авторуВ закладки on 09-Июл-02, 11:03  (MSK)
   Я занимаюсь написанием сервера, правельно ли то что мне ни send ни recv никогда не возвращают -1, даже когда происходит разрыв соединения
и следовательно определить что было разорвано, я могу только по нулевому значению возвращаемым recv когда FD_ISSET выдал что есть событие
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: правельно ли то что мне ни send ни recv никогда не возвр..."
Сообщение от Soldier Искать по авторуВ закладки on 09-Июл-02, 12:27  (MSK)
>   Я занимаюсь написанием сервера, правельно ли то что мне
>ни send ни recv никогда не возвращают -1, даже когда происходит
>разрыв соединения
>и следовательно определить что было разорвано, я могу только по нулевому значению
>возвращаемым recv когда FD_ISSET выдал что есть событие

Когда происходит разрыв соединения,send точно не возвращает -1. В man-е по send так и пишут, что надо использовать select. Я использую примерно ту же идею  для проверки соединения:

select(scok_fd,&readfds,...);
if (FD_ISSET(sockfd,&readfds)) {
ioctl(sockfd,FIONREAD,&nbytes);
if (!nbytes) соеденение разорвано;
else читаем nbytes байт
}


  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: правельно ли то что мне ни send ни recv никогда не возвр..."
Сообщение от Аноним emailИскать по авторуВ закладки on 13-Июл-02, 11:07  (MSK)
>ни send ни recv никогда не возвращают -1, даже когда происходит
>разрыв соединения

-1 возвращается при *ошибке*. Разрыв *ошибкой* не является.

>... определить что было разорвано ... по нулевому значению
> возвращаемым recv когда FD_ISSET выдал что есть событие

Да.

Или по SIGPIPE после send когда и т.д.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: правельно ли то что мне ни send ни recv никогда не возвр..."
Сообщение от Taras Искать по авторуВ закладки on 05-Авг-02, 13:52  (MSK)
>   Я занимаюсь написанием сервера, правельно ли то что мне
>ни send ни recv никогда не возвращают -1, даже когда происходит
>разрыв соединения
>и следовательно определить что было разорвано, я могу только по нулевому значению
>возвращаемым recv когда FD_ISSET выдал что есть событие

Речь идет о потоковых гнездах надо думать... ;-)
send вохвращает -1, как миленький, но только перед этим процесс получает SIGPIPE... ;-) Соответственно если ты его замаскируешь или обработаешь, то получишь свою разлюбезную -1... ;-) Правда может это в разных ядрах/осях по разному сделано -- запросто! ;-\

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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