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

Вниз

Создание и обработка событий сокета.   Найти похожие ветки 

 
Новичек ©   (2005-05-29 20:29) [0]

Уважаемые программеры, дайте, пожалуйста, рабочий пример создания и обработки событий сокета, а то я уже в ступоре: не идет, хоть стреляйся.

Вот код:

program Project1;
uses
WinSock2, ScktComp, Dialogs, SysUtils;

var
MySocketInfo: TWSAData;
ErrorCode: Integer;
MySocket: TSocket;
MySocketAddr: TSockAddr;
MySocketPort: Integer;
hEvent, hConnectEvent: THandle;
hEventObject: TWSANetworkEvents;

begin
ErrorCode := WSAStartup($0101, MySocketInfo);

MySocket := Socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
MySocketAddr.sin_family := AF_INET;
MySocketAddr.sin_addr.s_addr := Inet_Addr("127.0.0.1");
MySocketAddr.sin_port := htons(1234);
FillChar(MySocketAddr.sin_zero, SizeOf(MySocketAddr.sin_zero), 0);
if Connect(MySocket, @MySocketAddr, SizeOf(MySocketAddr)) <> 0 then ShowMessage("Коннекту жопа");

hEventObject.lNetworkEvents := WSACreateEvent();
WSAEventSelect(MySocket, hEventObject.lNetworkEvents, FD_CONNECT);
ShowMessage(IntToStr(hEventObject.lNetworkEvents));

WSAWaitForMultipleEvents(1, @hEventObject.lNetworkEvents, FALSE, WSA_INFINITE, FALSE)));

WSAEnumNetworkEvents(MySocket, hEventObject.lNetworkEvents, @hEventObject.lNetworkEvents);
end.


Как я понимаю, этот код создаёт сокет, затем говорим ОС, что желаем ожидать событие FD_CONNECT от MySocket, после чего с помощью функции WSAWaitForMultipleEvents ожидаем наступления оного. Так вот, не ждёт-с!!! Функция завершается с кодом 0!!! (То бишь, успешно, дождались)
Я для чистоты эксперимента IP давал разные - эффект один  
Причём, никакого сервера у меня нет.
Где грабли?!!! Помогите, други!!!


 
Digitman ©   (2005-05-30 08:17) [1]

сначала WSAEventSelect, а уж только потом connect()


 
Новичек ©   (2005-05-30 08:22) [2]

И всё?!!! Мда... А я уж тут обругал Гейтса всякими нехорошими словами :-)
Спасибо огромное.


 
Digitman ©   (2005-05-30 09:01) [3]


> Новичек ©   (30.05.05 08:22) [2]
> И всё?


все или не все - не знаю, в прочий твой код не вникал.

просто нарушение последовательности вызова этих ф-ций в твоем коде сразу бросается в глаза



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

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

Наверх




Память: 0.45 MB
Время: 0.009 c
1-1124922791
Aleksandr.
2005-08-25 02:33
2005.09.18
Прошу обратить внимание всем, кто работает с ActionMainMenuBar


14-1124569059
ronyn
2005-08-21 00:17
2005.09.18
Кто знает где русская справка по DS Pack и сопутствующему есть


14-1124788055
dHb
2005-08-23 13:07
2005.09.18
Движок сайта


2-1123734834
Patrick
2005-08-11 08:33
2005.09.18
Проблема с TStrings


14-1124472081
Ксардас
2005-08-19 21:21
2005.09.18
Как можно определить название и марку своеё звуковухи?





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