Я вот уже потом подумал что может возникнуть такой вопрос. Да, не точно выразил. Не подключаюсь а отправляю запрос. Программа отправляющая запрос моя "самописная" и у меня есть аналог этого сервера(тоже мой "самописный" но только не консольный. И они работают нормально.) Вот собрался его переделать под консольное приложение.
Ребят, проблема решена. Нужно было перед IdUDPServer.Active:=true; вписать IdUDPServer.ThreadedEvent:=True; и еще кое что "подшаманить"
Ниже выкладываю рабочий код, может кому пригодится.
Код:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils, Classes, IdSocketHandle, IdBaseComponent, IdComponent, IdUDPBase,
IdUDPServer;
type
TUDPServer = class
private
IdUDPServer: TIdUDPServer;
procedure IdUDPServer1UDPRead(ASender: TObject;AData: TStream; ABinding: TIdSocketHandle);
public
constructor Create; reintroduce;
destructor Destroy; override;
end;
var
ExitFlag: boolean = false;
constructor TUDPServer.Create;
begin
idUDPServer:=tIdUDPServer.create(nil);
idUDPServer.DefaultPort:=27010;
idUDPServer.BufferSize:=8192;
idUDPServer.BroadcastEnabled:=false;
idUDPServer.OnUDPRead:=IdUDPServer1UDPRead;
IdUDPServer.ThreadedEvent:=True;
IdUDPServer.Active:=true;
end;
destructor TUDPServer.Destroy;
begin
IdUDPServer.Active:=false;
IdUDPServer.free;
inherited destroy;
end;
procedure TUDPServer.IdUDPServer1UDPRead(ASender: TObject;AData:
TStream; ABinding: TIdSocketHandle);
begin
Writeln('KyKy');
end;
begin
with TUDPServer.Create do
try
writeln( 'Running' );
repeat
Sleep(1000);
until ExitFlag;
finally
free;
end;
end.