URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3671
[ Назад ]

Исходное сообщение
"каким образом можно узнать сколько свободно или занято в буфере tcp "

Отправлено gen , 01-Дек-04 13:31 
каким образом можно узнать сколько свободно или занято в буфере tcp канала. я отсылаю send ом , в неблокирующем режиме. И хотелось бы класть в буфер столько сколько там свободного места, пока ядро отсылает данные.Пробовол ioctl() с TIOCQOU или (что то вроде), но вижу что врёт , показывает неправильный размер. Есть ли какие идеи. Заранее спасибо

Содержание

Сообщения в этом обсуждении
"каким образом можно узнать сколько свободно или занято в буф..."
Отправлено klalafuda , 01-Дек-04 15:25 
>каким образом можно узнать сколько свободно или занято в буфере tcp канала.
>я отсылаю send ом , в неблокирующем режиме. И хотелось бы
>класть в буфер столько сколько там свободного места, пока ядро отсылает
>данные.Пробовол ioctl() с TIOCQOU или (что то вроде), но вижу что
>врёт , показывает неправильный размер. Есть ли какие идеи. Заранее спасибо
>

1. я отсылаю send ом , в неблокирующем режиме.
2. хотелось бы класть в буфер столько сколько там свободного места.

man send
man fcntl

и подумайте, почему при O_NONBLOCK send(2) в любом случае будет удовлетворять п.2.

// wbr


"каким образом можно узнать сколько свободно или занято в буф..."
Отправлено Murr , 02-Дек-04 18:40 
>Пробовол ioctl() с TIOCQOU

Буква T означает терминал.
С какой стати сокет должен подчиняться терминальным ioctl?
Попробуй SIOCINQ. :)