|
|
|
Сокеты и отправка данных, нюансы
|
|||
|---|---|---|---|
|
#18+
Всем салют. Меня интересует один теоретическо-практический вопрос))) сетевого программирования. Если мы открываем сокет, коннектимся к какому то серверу, передаем ему данные и затем закрываем сокет. Будет ли информация доставлена получателю, если сокет будет закрыт в программе до завершения физической операции передачи данных в ОС (я так понимаю, что в операционке тоже может работать что-то типа буферизации, когда отправка ставится в очередь). Или функция send сокета является блокирующей и не завершается, пока от клиента не придет подтверждение о получении данных либо ошибка, тогда вопрос отпадает сам собой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2008, 15:17 |
|
||
|
Сокеты и отправка данных, нюансы
|
|||
|---|---|---|---|
|
#18+
Закрытие сокета инициирует закрытие всех I/O операций, связанных с ним, так что не отосланные данные отосланы не будут(соответственно, не будут доставлены). автор Или функция send сокета является блокирующей и не завершается, пока от клиента не придет подтверждение о получении данных либо ошибке Функция send не дает гарантии о доставке посланного сообщения(точнее, по возвращаемому ей значению Вы не узнаете доставлен пакет или нет). Либо она возвращает размер посланного пакета(что значит, что пакет ушел, но не значит что доставлен), либо error code(локальный, например, сокет не открыт). Блокирующие/не блокирующие сокеты - это несколько другое, не относящиеся к вопросу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2008, 16:14 |
|
||
|
|

start [/forum/topic.php?fid=16&gotonew=1&tid=1345097]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
185ms |
get topic data: |
10ms |
get first new msg: |
6ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 500ms |

| 0 / 0 |
