Re[5]: Сокеты vs Пайпы
От: freelancer.malma  
Дата: 23.08.07 14:23
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>Да, передавал 5мегов. send отработал мгновенно, причем за один раз. Качал через интернет. Канал был загружен на всю катушку 500кб\сек. Смотрел через файрвол, он показывал какое приложение с какой скоростью принимает\отсылает данные. Как только стал отсылать мелочь по 100 байт. сразу скорость упала до 0.5 кб на прием и отправку. т.е. 1 цикл: отправил 5мб принял 4б выполнился за ~200мс через интернет. 1000 циклов: отправил 100 байт принял 4 байта выполнились за 7 минут. реально передано 100кб... т.е тупой send\receive непрокатывает для мелких запросов ответов. надо обязательно делать асинхронную обвеску для них...



А>Странно. А TCPNODELAY случайно не был включен? Изза него как раз такое может быть.


BOOL noDelay=TRUE;
if(::setsockopt(mMainSocket, IPPROTO_TCP, TCP_NODELAY, (char *)&noDelay, sizeof(BOOL))==SOCKET_ERROR){
throw new СIOException(WSAGetLastError());
}

BOOL noDelay=FALSE;
if(::setsockopt(mMainSocket, IPPROTO_TCP, TCP_NODELAY, (char *)&noDelay, sizeof(BOOL))==SOCKET_ERROR){
throw new СIOException(WSAGetLastError());
}

Непомогло никак.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.