Форум: "Сети";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.031 c