Форум: "Сети";
Текущий архив: 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.011 c