[Comm] read from socket
Nick S. Grechukh
=?iso-8859-1?q?ngrechukh_=CE=C1_ua=2Efm?=
Пт Фев 11 13:43:00 MSK 2005
On Friday 11 February 2005 12:35, Eugene Ostapets wrote:
> Nick S. Grechukh wrote:
> | задача читать из сокета (PF_INET SOCK_STREAM) данные в количестве
> 'несколько'
> | байт (команды вида 'stop','pause','skip','getinfo', возможно направляя
> ответ
> | до 100 байт.
> | есть ли вероятность что команда будет прочитана не полностью (не успел
> | ;-) т.е., клиент делает write("getinfo\n"), а я при однократном чтении
> | ловлю 'geti' (при повторном чтении - остальное)
> | я так понимаю, это зависит от размера посылаемого пакета, и при
> десятках байт
> | (которые влезают в один физический пакет) такое исключено?
> Нет, не исключено! Протокол tcp гарантирует что пакет будет доставлено,
ага. но 100 байт - по любому один пакет. меня пугает только не-атомарность,
которая имхо может быть только в момент перемещения пакета с сетевого уровня
в сам сокет.
> если это возможно. udp гарантирует только отправку пакета. Больше никто
> и ничего не гарантирует.
а recv с MSG_WAITALL не поможет? правда, тогда придется от текстовых команд
уйти на бинарные ради фиксированной длины.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 190 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/community/attachments/20050211/e19b2fc4/attachment-0003.bin>
Подробная информация о списке рассылки community