Сокеты и гарантированная отправка сообщения
От: -Cheese-  
Дата: 24.10.08 08:36
Оценка:
Всем привет!
Такой вопрос.
Когда я вызываю метод Send для созданного Socket-а, то сразу ли сообщение уйдёт в заданном направлении или может записаться в какой-то буффер сетевой карточки и отслаться позже (по заполнению буффера)?
Как это проверить и как этим управлять?
Носом чую, что через SetSocketOption с параметрами SendTimeout, SendBuffer... что конкретно и в какой комбинации нужно?
Для меня важно, чтоб сообщения сразу уходило.
Спасибо..
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re: Сокеты и гарантированная отправка сообщения
От: Pavel M. Россия  
Дата: 24.10.08 15:39
Оценка:
Здравствуйте, -Cheese-, Вы писали:

C>Спасибо..


Может, с этим нужно поиграться?


SendBuffer Specifies the total per-socket buffer space reserved for sends. This is unrelated to the maximum message size or the size of a TCP window.

здесь
--------------------------
less think — do more
Re: Сокеты и гарантированная отправка сообщения
От: Cyberax Марс  
Дата: 24.10.08 15:44
Оценка:
Здравствуйте, -Cheese-, Вы писали:

C>Когда я вызываю метод Send для созданного Socket-а, то сразу ли сообщение уйдёт в заданном направлении или может записаться в какой-то буффер сетевой карточки и отслаться позже (по заполнению буффера)?

По умолчанию на сокетах включен алгоритм Нэйгла, так что буфферизованые данные уйдут, когда с другой стороны придёт очередной пакет подтверждения.

C>Как это проверить и как этим управлять?

Можно установить TCP_NODELAY, тогда данные отправляемые через send() будут отосланы в ближайшее время.

C>Для меня важно, чтоб сообщения сразу уходило.

Такой гарантии дать нельзя.
Sapienti sat!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.