Главная страница
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.48 MB
Время: 0.013 c
2-1231746104
alex_3
2009-01-12 10:41
2009.02.22
прокрутка в richedit


15-1230106923
igan
2008-12-24 11:22
2009.02.22
Формат хранения времени в файле


2-1231512945
Arinyshka
2009-01-09 17:55
2009.02.22
QReport, настройки принтера


4-1205732698
vi_RUS
2008-03-17 08:44
2009.02.22
Как вместо одного клика мыши генерить шесть?


15-1230194028
Владимир Юдин
2008-12-25 11:33
2009.02.22
Нужен Delphi-программист для работы в Екатеринбурге