The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как узнать размер буфера передачи у tcp сокета в линуксе"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как узнать размер буфера передачи у tcp сокета в линуксе"
Сообщение от gen Искать по авторуВ закладки(??) on 14-Апр-04, 13:49  (MSK)
Как узнать размер буфера передачи у tcp сокета в линуксе
Никак найти не могу не в ioctl не в getsockopt
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Как узнать размер буфера передачи у tcp сокета в линуксе"
Сообщение от asdfgf emailИскать по авторуВ закладки(ok) on 14-Апр-04, 16:12  (MSK)
>Как узнать размер буфера передачи у tcp сокета в линуксе
>Никак найти не могу не в ioctl не в getsockopt


Плохо ищешь :-)
man 7 socket:

SO_SNDBUF
    Sets  or  gets the maximum socket send buffer in bytes.  The default
    value is set by the wmem_default  sysctl  and  the  maximum  allowed
    value is set by the wmem_max sysctl.

SO_SNDBUF
    Задает  или  считывает  максимальный  размер буфера
    передачи сокета в байтах.   Значение  по  умолчанию
    устанавливается   sysctl-вызовом   wmem_default,  а
    максимальное        значение        устанавливается
    sysctl-вызовом wmem_max.

Еще кое-какую информацию можно подчерпнуть из /usr/src/linux/Documentation/networking/ip-sysctl.txt (поищи по SO_SNDBUF)
также у нас есть замечательное место:
/proc/sys/net/ipv4/tcp_wmem, тут записано min, default, max значение размеров буфера передачи у tcp сокета, для твоего ядра linux.

А на Си это будет выглядеть так(выдает default значение):
//все это дело можно сделать и с помощью sysctl вызовов, но не рекомендуется этого делать.
#include <stdio.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/types.h>
int main(char *argc, char *argv[])
{
        int my_socket;
        int sockbufsize=0;
        int size=sizeof(int);
        if((my_socket=socket(AF_INET,SOL_SOCKET,0))==-1)
        {
              perror("Error");
              return 0;
        }
        if(getsockopt(my_socket,SOL_SOCKET,SO_SNDBUF,(char*) &sockbufsize, &size)==-1)
        {
                perror("Error");
                return 0;
        }
        printf("%d\n",sockbufsize);
}

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Как узнать размер буфера передачи у tcp сокета в линуксе"
Сообщение от gen Искать по авторуВ закладки(??) on 28-Апр-04, 13:49  (MSK)
спасибо теперь разобрался наконец
Линух динамически меняет размер буфера
и первоначальный у меня всё время потом менялся а я не въезжал что происходит
Теперь вроде понял
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Как узнать размер буфера передачи у tcp сокета в линуксе"
Сообщение от asdfgf emailИскать по авторуВ закладки(??) on 29-Апр-04, 14:03  (MSK)
>спасибо теперь разобрался наконец
>Линух динамически меняет размер буфера
>и первоначальный у меня всё время потом менялся а я не въезжал
>что происходит
>Теперь вроде понял


То есть как менял?
Размер буфера можно поменять программно, в пределах значений MIN & MAX
Но чтоб ядро его само меняло...
С чего ты это взял в общем?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Как узнать размер буфера передачи у tcp сокета в линуксе"
Сообщение от gen Искать по авторуВ закладки(??) on 02-Июн-04, 14:27  (MSK)
>>спасибо теперь разобрался наконец
>>Линух динамически меняет размер буфера
>>и первоначальный у меня всё время потом менялся а я не въезжал
>>что происходит
>>Теперь вроде понял
>
>
>То есть как менял?
>Размер буфера можно поменять программно, в пределах значений MIN & MAX
>Но чтоб ядро его само меняло...
>С чего ты это взял в общем?

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

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру