setsockopt - въпросче

3 отговора 0 прегледа
#1

setsockopt - въпросче

В Windows има опция TCP_NODELAY.
Чудя се има ли подобна опция в Linux - поне аз не видях.
В Windows без тази опция има буфериране, което оптмизира трафика, но ми пречеше при едно приложение, изискващо поток.
В Линукс, не съм наясно дали има подобно буфериране и как евентуално мога да го избегна - то един от начините е ясен - да избера подходящ размер на пакета.
До колкото става дума за комуникация в рамките на LAN, а потока е от порядъка на 130 - 150 Кбит - вероятно това е начина.

Bеer? Mоre?
Плацебото
Отговор
в отговор на bira_more #2

Във <sys/socket.h>

Имаш функция setsockopt (), която можеш да зададеш така


int fd, on = 1;
/* бла бла бла, */
setsockopt (fd, SOL_TCP, TCP_NODELAY, &on, sizeof (on));


Виж и man страницата за подробности.

Отговор
в отговор на martyr #3

Re: Във <sys/socket.h>

Мерси.
Даже вече го сложих, само дето ненаправих тестовете преди - да видя какво е забавянето.
Както и да е - в момента забавянето от трафик е милисекунди, и до колкото става въпрос за voice recognition - е най-малкото забавяне и не пречи особено.

Bеer? Mоre?
Плацебото
Отговор
в отговор на bira_more #4

Re: Във <sys/socket.h>

Тъпо е да слагаш код без да си _сигурен_, че помага.

If I could remember the names of all those particles I would have been botanist -- Fermi
Отговор