Главная страница
    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.011 c
3-1123224024
Juice
2005-08-05 10:40
2005.09.18
IB Expert показал системные таблицы


14-1124944492
КаПиБаРа
2005-08-25 08:34
2005.09.18
Такое только а Рооссии бывает?


14-1124796782
Antonn
2005-08-23 15:33
2005.09.18
Реализация голосования на сайте


2-1123573788
rolex
2005-08-09 11:49
2005.09.18
В событии Form1 onShow пишу Form2.ShowModal, но Form1 не показыва


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