>>Подскажите пожалуйста, какие есть способы доставки клиентом серверу данных находящихся в буфере >>передачи. А то сервер подвисает, ждёт конца файла. TCP_NONDELAY не помогает. >> > >Какого еще конца файла?? >Чтобы ОС отправила по TCP данные, находящиеся в output buffer(помещаются очевидно через >send() | write()), надо, чтобы...На последние пакеты должно прийти подтверждение = >ACK, чтобы она могла убрать отосланные и подтвержденные данные из буфера...Тогда >отошлются следующие данные....(на самом деле, всё гораздо сложнее, но идея - >на все данные должно прийти подтверждение - тогда начнут отправляться новые >данные) > >Сервер-то где подвисает?В read()? >Да. Именно в read().
Передаётся небольшая структура. При аналезе (tcpdump..) выяснелось, что пару фрагментов остаются на клинтской части. Обидно. Приходиться закрывать соединение, а затем вновь подключаться, тогда те куски приходят без проблем. Идея понятна. Но как реализовать?
|