-
Удалено модератором
-
Просмотрел бегло, может уже сказано, но не заметил.
Нормально это, FIN пришел вместе с последним пакетом. Сервер закончил запись и вызвал shutdown на свой передающий конец - типа больше ниче передавать не буду. Сокет отправил все из буфера и с последним пакетом - FIN. Получив его, нужно вычерпать все из буфера и закрыть свой приемный конец.
-
Соберем для Вас по сети интернет базу данных потенциальных клиентов для Вашего Бизнеса!!! Соберем данных Много!!! Быстро!!! Недорого!!! Название телефон факс e-mail www адрес имена итд Узнайте подробности по телефону: +79133913837 ICQ: 6288862 Email: rassilka.agent@gmail.com Skype: prodawez
-
Сделай так:
While True do Begin Err:=Recv(...); IF err=SOCKET_ERROR and WSAGetLastError=WSAEWOULDBLOCK Then Break; End; Event - сигнализирует о приходе данных, а IOCTLSocket - покажет всего 8192 макс хотя там может быть и больше :) (проверенно экспериментально) А вообще лучше использовать Select в потоках :) тоже экспериментально :) Я тоже пытался прокси на Эвентах написать, но столкнулся с такой же ситуацией и с не закрытыми соединениями со стороны апачей :). Спасло только то что весь код переделал под синхронные сокеты.
-
При известном количестве данных - читай сколько указано в заголовке, recv вернет ошибку если соединение будет закныто раньше.
В отдельном потоке, можно и блокирующими сокетами обойтись.
-
> FireMan_Alexey (04.02.09 18:29) [43]
А ничего что год прошел? :)
|