Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

WinSock сервер, события   Найти похожие ветки 

 
Delpher_Gray ©   (2004-03-03 19:40) [40]

>С Classes не так уж и "распухает"
Ага, как-же :)) Так прога весит 15.5 кб, и пашет, а с модулем: 150

>Тебе не обойтись без этого модуля для сервера, либо по-сути тебе его придется "воспроизвести" врукопашную.
Юзаю KOL и WinAPI :)

2Digitman:
Я нашёл решение, очени, правильно ли...
...

procedure SockMSG(HWnd, Msg, WParam, LParam: longint); stdcall;
begin
 if Msg = WM_SOCK then
   case LParam of
     FD_ACCEPT:
     begin
       MsgOk("FD_ACCEPT");
       ASock := accept(Sock, nil, nil);
       WSAAsyncSelect(ASock, Wnd, WM_SOCK, FD_READ);
       SendString("FD_ACCEPT", ASock);
     end;
     FD_READ:
     begin
       MsgOk("FD_READ");
       ioctlsocket(WParam, FIONREAD, Longint(OffSet));
       Received := recv(WParam, Buff[1], SizeOf(Buff), 0);
       MsgOk(Int2Str(Received)+" èç "+Int2Str(OffSet));
     end;
   end;
end;

...

SetWindowLong(Wnd, GWL_WNDPROC, Longint(@SockMSG));


Так вот :) Всё работает, но привильно ли всё сделано ??


 
Verg ©   (2004-03-03 19:55) [41]


> ioctlsocket(WParam, FIONREAD, Longint(OffSet));


1. Этого НЕ надо.

2. LParam в case - низя - там в LParamHi - код ошибки при исключительных ситуациях, только LparamLo...,
Кстати, значит, ScktComp так и не посмотрел....

Поверхеностно подходите к задаче, м.ч., как я посмотрю


> Всё работает, но привильно ли всё сделано ??


Кого спрашиваешь? - все равно, типа, "никого не слушаешь" :)


> Ага, как-же :)) Так прога весит 15.5 кб, и пашет, а с модулем:
> 150


Т.е. уже все? - все делает и весит 15,5 ? Полнофункциональная ? :)))

Эх, "вюноша бледный...",...


 
Delpher_Gray ©   (2004-03-03 20:01) [42]

>Кого спрашиваешь? - все равно, типа, "никого не слушаешь" :)
Всё же стараюсь....... ;)

Дело не в размере, я просто хочу разобраться сначала и до конца как всё это работает, без всяких Classes.......


 
Verg ©   (2004-03-03 20:14) [43]


> Delpher_Gray ©   (03.03.04 20:01) [42]
> >Кого спрашиваешь? - все равно, типа, "никого не слушаешь"
> :)
> Всё же стараюсь....... ;)
>
> Дело не в размере, я просто хочу разобраться сначала и до
> конца как всё это работает, без всяких Classes.......


Поступай как хочешь, но classes тоже писали не придурки, единственной целью которых было типа увеличить размер твоей любимой программы.
Через WinAPI, говоришь. А classes работает, конечно, через "черный ход"? Ага...

В чем ты хочешь разобраться? В окнах, их классах, собщениях, способах их обработки и проч.? - иди в WinAPI форум.
Ты смешал все в одну большую кучу, и хочешь с этим  одновременно разбираться.... Мухи от котлет отдели пока....


 
Digitman ©   (2004-03-04 08:21) [44]


> привильно ли всё сделано


неправильно.

в обработчике события FD_ACCEPT не следует ничего передавать вновь подключившемуся клиенту

дождись FD_WRITE (оно обязательно возникнет следом за FD_ACCEPT, как минимум однократно), и вот уже в обработчике FD_WRITE ты имеешь полное право выполнять свою SendString() для того гнезда, которое возбудило это событие



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

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.025 c
1-1082046790
Knight
2004-04-15 20:33
2004.05.02
Динамический массив в компоненте...


6-1077853402
Delpher_Gray
2004-02-27 06:43
2004.05.02
WinSock сервер, события


11-1066893645
Kerk
2003-10-23 11:20
2004.05.02
VCL -> KOL


14-1081839758
Ik
2004-04-13 11:02
2004.05.02
Проблема с Wingate


8-1075930501
Misha Podgorny
2004-02-05 00:35
2004.05.02
SMOOTHVISION !?