Главная страница
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
3-1215403733
Spot
2008-07-07 08:08
2009.02.22
Экспорт из MySQL в Access


15-1230205417
тимохов
2008-12-25 14:43
2009.02.22
Почему в русской WinXP меню могут показываться кракозяблами?


9-1177152550
BIX
2007-04-21 14:49
2009.02.22
скачать бесплатный движок


15-1229898775
[Ждущий]
2008-12-22 01:32
2009.02.22
Долго открывается список с локальными дисками


2-1231757559
Программер
2009-01-12 13:52
2009.02.22
Как выделить item в listbox?