Главная страница
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.075 c
2-1231593826
S.S.T.
2009-01-10 16:23
2009.02.22
посчитать количество слов в строке


15-1230063945
newacct
2008-12-23 23:25
2009.02.22
гбит, кбит, сек


2-1231924532
andreoman
2009-01-14 12:15
2009.02.22
treeview при двойном щелчке менялась пиктограмма узла


2-1231746104
alex_3
2009-01-12 10:41
2009.02.22
прокрутка в richedit


13-1122929437
Кузя
2005-08-02 00:50
2009.02.22
CAD-систему реально писать под .Net?