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

Вниз

Socket Read   Найти похожие ветки 

 
Landgraph   (2002-12-06 14:34) [0]

И снова вопрос =)

Создан сокет (socket(), connect() - все путем...), а вот чем бы узнать: пришло на него что-нить (и желательно бы размер пришедшей инф-ции), дабы потом прочитать recv()?

Желательно бы примерчик(С/С++, Паскаль)... Но можете и просто послать в сторону какой-нить статьи по этому поводу (на citforum не посылать - был)...


 
Digitman   (2002-12-06 14:40) [1]

это ты все "в одной процедуре" лепишь ?) т.е. гнездо - блокирующее ?

так ведь - вот он, примерчик, перед носом у тебя :

фрагмент файла scktcomp.pas (D5):


procedure TServerClientThread.ClientExecute;
var
FDSet: TFDSet;
TimeVal: TTimeVal;
begin
while not Terminated and ClientSocket.Connected do
begin
FD_ZERO(FDSet);
FD_SET(ClientSocket.SocketHandle, FDSet);
TimeVal.tv_sec := 0;
TimeVal.tv_usec := 500;
//вот здесь и узнаем, "пришло на него что-нить" аль нет))))
if (select(0, @FDSet, nil, nil, @TimeVal) > 0) and not Terminated then
if ClientSocket.ReceiveBuf(FDSet, -1) = 0 then Break
else Synchronize(DoRead);
if (select(0, nil, @FDSet, nil, @TimeVal) > 0) and not Terminated then
Synchronize(DoWrite);
end;
end;


 
Alex Konshin   (2002-12-07 05:56) [2]

2 Digitman: ясно же сказали, что socket() и connect(), т.е. это чистый Winsock.

ioctlsocket(FSocket,FIONREAD,len);

Только имей в виду, что это не обязательно будет пакет такой же длины, какой его послал отправитель. Ты вполне можешь получить только часть посылки или, наоборот, несколько посылок за раз.
Но это все еще зависит от типа сокета.


 
Landgraph   (2002-12-08 11:55) [3]

А где можно почитать про эту функцию?

Вообще, где можно найти про программирование сокетов? Создание и закрытие сокета - ясно, а вот про манипуляции с сокетом побольше бы узнать... WSA*, etc...


 
Polevi   (2002-12-08 13:22) [4]

Э.Джонс, Д.Оланд
Программирование в сетях Microsoft Windows


 
Landgraph   (2002-12-08 17:11) [5]

А как насчет линка? Откуда у бедного программиста деньги на книжку? Особенно у русского =)


 
Alex Konshin   (2002-12-08 21:21) [6]

http://msdn.microsoft.com/library/en-us/winsock/winsock/windows_sockets_start_page_2.asp



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

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

Наверх





Память: 0.45 MB
Время: 0.008 c
8-5075
Diamond Cat
2002-09-25 00:08
2003.02.03
Анимация на рабочем столе


3-4803
Rustik
2003-01-15 13:29
2003.02.03
Не вытаскиваются данные из DBText с предыдущей формы


14-5159
PaRL
2003-01-17 18:49
2003.02.03
FineReader


1-5004
xxxCrazyManxxx
2003-01-23 17:03
2003.02.03
OnClick


14-5177
без имени
2003-01-17 22:50
2003.02.03
и тишина...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский