|
|
|
Как правильно закрывать сокет? Linux
|
|||
|---|---|---|---|
|
#18+
Закрываю сокет функцией close(sock), если потом снова его открываю то bind выдает ошибку "addres is allready in use" в инете нашел что перед close(sock) вызывать функцию shutdown(sock, SHUT_RDWR), но это почему-то не помогает, результат такой-же. Подскажите пожалуйста, как правильно закрыть сокет, чтобы при повторном открытии bind не приводил к ошибке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2007, 18:57 |
|
||
|
Как правильно закрывать сокет? Linux
|
|||
|---|---|---|---|
|
#18+
Дай сокету отдохнуть.... man ip A TCP local socket address that has been bound is unavailable for some time after closing, unless the SO_REUSEADDR flag has been set. Care should be taken when using this flag as it makes TCP less reliable. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2007, 19:58 |
|
||
|
Как правильно закрывать сокет? Linux
|
|||
|---|---|---|---|
|
#18+
Sandro_KЗакрываю сокет функцией close(sock), если потом снова его открываю то bind выдает ошибку "addres is allready in use" в инете нашел что перед close(sock) вызывать функцию shutdown(sock, SHUT_RDWR), но это почему-то не помогает, результат такой-же. Подскажите пожалуйста, как правильно закрыть сокет, чтобы при повторном открытии bind не приводил к ошибке Самый простой и действенный способ: Запиши и прочитай 0 байт из( в) сокет перед закрытием. Или смотри на keepalive параметры, что бы установить время необходимое для отдыха. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2007, 10:43 |
|
||
|
|

start [/forum/topic.php?fid=57&gotonew=1&tid=2029386]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
195ms |
get topic data: |
11ms |
get first new msg: |
6ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 551ms |

| 0 / 0 |
