|
|
|
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&gotonew=1&tid=2032897]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
93ms |
get topic data: |
14ms |
get first new msg: |
9ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 462ms |

| 0 / 0 |
