idTCPServer и консольное приложение

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

idTCPServer и консольное приложение

Сообщение Linus » 05.02.2013 00:56:48

Здравствуйте, лазил по форуму по данной теме, перелопатил кучу примеров и получилось вот это:
Код: Выделить всё
.....
type
  { TLinusServer }

  TLinusServer = class(TCustomApplication)
  protected
    procedure DoRun; override;
  public
    constructor Create(TheOwner: TComponent); override;
    destructor Destroy; override;
  end;

  type MyServer = Class(TIdTCPServer)
  procedure TCPServerExecute(AContext: TIdContext);
  Constructor Build;
end;

{ TLinusServer }
var
   ServerIOHandlerStack: TIdServerIOHandlerStack;
   TCPServer: MyServer;

constructor MyServer.Build;
begin
  TCPServer:=MyServer.Create(nil);
  ServerIOHandlerStack:=TIdServerIOHandlerStack.Create(nil);

  TCPServer.IOHandler:=ServerIOHandlerStack;
  TCPServer.OnExecute:=@TCPServerExecute;

  TCPServer.DefaultPort:=2048;
  writeln('OK');
end;

procedure MyServer.TCPServerExecute(AContext: TIdContext);
var
  s:string;
begin
  //no
  //head.Caption:='запуск';
   with AContext.Connection do begin
     //принимаем запросы...
s:=AContext.Connection.IOHandler.ReadLn();
send_to_console(s);

extract_get(s,AContext);

  end;
end;

procedure TLinusServer.DoRun;
var
  ErrorMsg: String;
begin
          write('Запуск сервера...');
          user_cache_mem:=10;
         Tcpserver.Build;
          tcpServer.Active:=true;
           { add your program here }
           readln;
  // stop program loop
  Terminate;
end;

constructor TLinusServer.Create(TheOwner: TComponent);
begin
  inherited Create(TheOwner);
end;

destructor TLinusServer.Destroy;
begin
  inherited Destroy;
end;

var
  Application: TLinusServer;

{$R *.res}

begin
  Application:=TLinusServer.Create(nil);
   Application.Run;
  Application.Free;
end.   


естественно это не работает... ругается: Запуск сервера...exception at 0804862A:
Access violation. Такое ощущение, что idTCPserver вообще не создается.
А раньше ругался на какие-то "конкурирующие" потоки. В общем без понятия как заставить это работать.

(lazarus 0.9.30.4 FPC=2.6.0 linux debian i386 gtk2)
Linus
новенький
 
Сообщения: 47
Зарегистрирован: 11.01.2013 22:01:28

Re: idTCPServer и консольное приложение

Сообщение Brainenjii » 05.02.2013 08:07:47

viewtopic.php?f=1&t=5359&p=38643&hilit=indy#p38643 - с небольшими правками, но сейчас пользуюсь indy примерно так
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 247

Рейтинг@Mail.ru
cron