Главная страница
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.013 c
2-1231430084
Pavelkq
2009-01-08 18:54
2009.02.22
DrawGrig - исчезающие картинки.


8-1190199525
gtr86
2007-09-19 14:58
2009.02.22
Вывод текста на канве


2-1231841768
ganda
2009-01-13 13:16
2009.02.22
Delphi 2009 + IBDAC 2.70 + UniCode + FireBird 2.1


2-1231877090
AdMeen
2009-01-13 23:04
2009.02.22
Поиск в глубину


6-1198794565
asker
2007-12-28 01:29
2009.02.22
Ответ для браузера