The OpenNET Project / Index page

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



"Socket - Передача файлов"
Версия для распечатки Пред. тема | След. тема
Форум Программирование под UNIX
Исходное сообщение [ Отслеживать ]

. "Socket - Передача файлов" +/
Сообщение от sergeemail (??), 11-Июн-06, 15:39 
>Аодскажите пожалуйста, какие есть способы доставки клиентом серверу данных находящихся в буфере
>передачи. А то сервер подвисает, ждёт конца файла. TCP_NONDELAY не помогает.
>

после того, как сделали send/write на отправляющей стороне, сделайте read/recv там-же. данные будут вытолкнуты из буффера и отправлены принимающей стороне.

кроме того, можно попробовать включить и сразу выключить флаг TCP_CORK, что-то типа:

    int on = 1, off = 0;

    if (-1 == setsockopt(fd, SOL_TCP, TCP_CORK, (void *) &on, sizeof(on)))
        warn("setsockopt(TCP_CORK)");

    if (-1 == setsockopt(fd, SOL_TCP, TCP_CORK, (void *) &off, sizeof(off)))
        warn("setsockopt(TCP_CORK)");

но этот способ только для Linux.

далее - философские рассуждения )
вообще, мне кажется, нужно сразу делать эти вещи в неблокирующем режиме. простота блокирующего режима - мнимая.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Socket - Передача файлов, NikR, 27-Май-06, 04:05  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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