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

Вниз

Обновление событий...   Найти похожие ветки 

 
maxistent   (2008-01-05 18:18) [0]

Всем привет. Помогите в одном вопросе. Я пытаюсь создать ДЛЛ, в ней использую компонент TServerSocket. При коннекте/дисконнекте, а также при появлении данных со стороны клиента должны появляццо соотв. сообщения. Я делаю примерно следующее:



...

type
TServer_IN = class (TServerSocket)
Procedure OnConnect(Sender: TObject; Socket: TCustomWinSocket);
Procedure OnDisconnect(Sender: TObject; Socket: TCustomWinSocket);
Procedure OnError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);
Procedure OnRead(Sender: TObject; Socket: TCustomWinSocket);
end;

...
описываю обработчики событий OnConnect,OnDisconnect,OnError,Onread...
...

var
MS_IN:TServer_IN;
Server_IN:TServerSocket;

...

begin
MS_IN:=TServer_IN.Create(nil);
Server_IN:=TServerSocket.Create(nil);
Server_IN.Port:=1234;
Server_IN.OnClientError:=MS_IN.OnError;
Server_IN.OnClientConnect:=MS_IN.OnConnect;
Server_IN.OnClientDisconnect:=MS_IN.OnDisconnect;
Server_IN.OnClientRead:=ms_in.OnRead;
Server_IN.Active:=true;
>>>>>>>while ??? do ???<<<<<<<<
end.


В общем, в после всего этого безобразия нужно организовать цикл, который "ОБНОВЛЯЕТ" Server_IN, чтобы он "реагировал" на коннект/дисконнект и поступление данных со стороны клиента. Как это сделать корректно?


 
MultIfleX   (2008-01-05 18:28) [1]

var
 msg      : TMsg;
begin
while GetMessage(msg, 0, 0, 0) do
 begin
   TranslateMessage(msg);
   DispatchMessage(msg);
 end;


 
maxistent   (2008-01-05 19:56) [2]

так не получается. приложение, которое начинает использовать эту ДЛЛ-ку, виснет. полностью. апсалютна. :-( как быть?


 
MetalFan ©   (2008-01-06 10:41) [3]

1. неблокирующий режим
2. отдельный поток


 
maxistent   (2008-01-06 16:58) [4]

ок. а где можно примеры найти?


 
maxistent   (2008-01-06 17:00) [5]

а... ну да. я итак использую неблокирующий режим. и отдельный поток пробывал поставить. всё-равно виснет :-( как быть? может есть какая-то процедура, позволяющая выполнить непосредственное "ОБНОВЛЕНИЕ" ServerSocket"a?



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

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

Наверх




Память: 0.47 MB
Время: 0.015 c
3-1215423344
flaxe
2008-07-07 13:35
2009.02.22
DBF Сеть


15-1230166589
XentaAbsenta
2008-12-25 03:56
2009.02.22
Поиск циклических связей между таблицами в БД


2-1231532495
Б
2009-01-09 23:21
2009.02.22
TList


15-1230264209
Slider007
2008-12-26 07:03
2009.02.22
С днем рождения ! 26 декабря 2008 пятница


6-1177647982
Lamer666
2007-04-27 08:26
2009.02.22
SMS Sender