Вниз
Скачать: CL | DM;

Вопрос про сокеты, а точнее про FD_CLOSE и FD_READ   Найти похожие ветки 

← →
имя   (2008-02-05 19:35) [40]

Удалено модератором


← →
ага   (2008-02-06 13:22) [41]

Просмотрел бегло, может уже сказано, но не заметил.

Нормально это, FIN пришел вместе с последним пакетом. Сервер закончил запись и вызвал shutdown на свой передающий конец - типа больше ниче передавать не буду. Сокет отправил все из буфера и с последним пакетом - FIN. Получив его, нужно вычерпать все из буфера и закрыть свой приемный конец.


← →
имя   (2009-02-04 17:32) [42]

Удалено модератором


← →
FireMan_Alexey   (2009-02-04 18:29) [43]

Сделай так:

While True do
Begin
 Err:=Recv(...);
 IF err=SOCKET_ERROR and WSAGetLastError=WSAEWOULDBLOCK Then
   Break;
End;
Event - сигнализирует о приходе данных, а IOCTLSocket - покажет всего 8192 макс хотя там может быть и больше :) (проверенно экспериментально)
А вообще лучше использовать Select в потоках :) тоже экспериментально :)
Я тоже пытался прокси на Эвентах написать, но столкнулся с такой же ситуацией и с не закрытыми соединениями со стороны апачей :).
Спасло только то что весь код переделал под синхронные сокеты.


← →
!"№;%:?*   (2009-03-12 07:30) [44]

При известном количестве данных - читай сколько указано в заголовке, recv вернет ошибку если соединение будет закныто раньше.

В отдельном потоке, можно и блокирующими сокетами обойтись.


← →
Palladin ©   (2009-03-12 08:28) [45]


> FireMan_Alexey   (04.02.09 18:29) [43]

А ничего что год прошел? :)



Страницы: 1 2 вся ветка

Скачать: CL | DM;



Память: 0.52 MB
Время: 0.005 c
2-1295333857
voha
2011-01-18 09:57
2011.04.24
Handle ActiveX объекта


2-1295535215
volkafff
2011-01-20 17:53
2011.04.24
Курсор над компонентом и форма компонента Image.


2-1292988713
Abcdef123
2010-12-22 06:31
2011.04.24
Принтер "портит" выполнение программы?


15-1294912978
Андрей123
2011-01-13 13:02
2011.04.24
Подключение IP-камеры к телевизору


2-1295358908
Сергей
2011-01-18 16:55
2011.04.24
Как запустить окно (winapi) по клику кнопки?




   Наверх