|
|
|
select
|
|||
|---|---|---|---|
|
#18+
Всем привет. Есть TCP / IP сервер(Unix). Клиентcкое приложение закрывает сетевое соединение. Системный вызов select на сервере отлавливает это событие. Дискриптор получен. Каким образом можно определить факт закрытия сокета на клиенте (валидность сокета). Операции ввода вывода в этом месте производить нельзя. По сему обработку ошибок на read,write,send,recv не предлагать. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2005, 23:54 |
|
||
|
select
|
|||
|---|---|---|---|
|
#18+
Если сокет уже закрылся - то любое обращение к нему приведет к ошибке. Можно попробовать что-то безобидное типа getsockopt, getpeername или getsockname. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2005, 13:15 |
|
||
|
select
|
|||
|---|---|---|---|
|
#18+
--null--Если сокет уже закрылся - то любое обращение к нему приведет к ошибке. Можно попробовать что-то безобидное типа getsockopt, getpeername или getsockname. Thanks Я уже выкрутился через ioctl вот так : Код: plaintext 1. 2. 3. 4. 5. возвращает socket 0 error [22] [Invalid argument] Если кото знает как получить более точную ошибку, колитесь, думаю обществу пригодится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2005, 16:26 |
|
||
|
select
|
|||
|---|---|---|---|
|
#18+
onstat-Если кото знает как получить более точную ошибку, колитесь, думаю обществу пригодится. через тот же селект, установив только fd_set* exceptfds. Если сокет отвалился будет exception ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2005, 08:36 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33214973&tid=2032897]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 209ms |
| total: | 378ms |

| 0 / 0 |
