Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как не допустить закрытие консольного приложения ? [D6, WinXP]


delpher_gray ©   (2002-09-18 19:57:00) 

Привет Делферы !
Списибо что помогли помогли написать консольный сервер (особенно это относится к REA).
Так вот, есть консольное приложение (сервер), и при его запуске он сразу закрывается... Если написать к примеру while true do ServerSocket1.Open;, тогда события не будут работать :-( Подскажите как сделать чтоб сервер работал, и чтоб естественно события работали.
Вот код сервера:
program PServer;

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs,
ScktComp;

type
TMyClass = class
public
procedure ClientConnectEvent(Sender: TObject; Socket: TCustomWinSocket);
end;

var
ServerSocket1: TServerSocket;
TCPHandler: TMyClass;

procedure TMyClass.ClientConnectEvent(Sender: TObject; Socket: TCustomWinSocket);
begin
Socket.SendText("Присоеденился: "+Socket.RemoteHost);
end;

begin
TCPHandler := TMyClass.Create;
ServerSocket1 := TServerSocket.Create(nil);
ServerSocket1.Port := 123;
ServerSocket1.OnClientConnect := TCPHandler.ClientConnectEvent;
ServerSocket1.Open; // Вот с этим надо что-то делать :-)
ServerSocket1.Free;
TCPHandler.Free;
end.

Подскажите плиз !


ATR   (2002-09-18 20:32:00) [1]


........
var Msg:TMSG;
Cancel:boolean;
.........
begin
.........
ServerSocket1.Open;
while not Cancel do
begin
while PeekMessage(Msg, 0, 0, 0, PM_REMOVE) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
Sleep(5);
end;
ServerSocket1.Close;
ServerSocket1.Free;
.......

И не забывай делать ServerSocket1.Close перед Free.


Наверх

Титульная страница Поиск, карта сайта Написать письмо