Главная страница
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.028 c
1-1081798973
Nekto
2004-04-12 23:42
2004.05.02
Excel


1-1082015657
Курдль
2004-04-15 11:54
2004.05.02
Директивы компиллятора {$IF произвольная_константа = ..}


3-1080903042
bushmen
2004-04-02 14:50
2004.05.02
MS SQL и DBF


14-1081836347
Nous Mellon
2004-04-13 10:05
2004.05.02
О клонах


1-1081933960
LameFox
2004-04-14 13:12
2004.05.02
Не пашет Image1.Picture.LoadFromFile(...);