Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2011.04.24;
Скачать: [xml.tar.bz2];

Вниз

Вопрос про сокеты, а точнее про 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 вся ветка

Форум: "Сети";
Текущий архив: 2011.04.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.006 c
15-1294954192
Юрий
2011-01-14 00:29
2011.04.24
С днем рождения ! 14 января 2011 пятница


2-1295539697
Ain
2011-01-20 19:08
2011.04.24
Edit


1-1252579314
webpauk
2009-09-10 14:41
2011.04.24
тень


15-1294176598
Юрий
2011-01-05 00:29
2011.04.24
С днем рождения ! 5 января 2011 среда


2-1295381178
kokj007
2011-01-18 23:06
2011.04.24
перевести 20.01.10 в HEX(FA,EE,F8,95)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский