Допустим а если сервера по указаному порту не существует? как это определить?
Определяет что сервер только работает. А вот что он не работает, программа не пишет.
Код:
procedure TForm1.ConnectBtnClick(Sender: TObject);
var
data: array of Char;
s: String;
begin
UPD.Broadcast(#255#255#255#255'TSource Engine Query'#0, 27020);
UPD.DefaultPort:=27020;
s:=#255#255#255#255'TSource Engine Query'#0;
SetLength(data, Length(s));
StrPCopy(@data[0], s);
UPD.SendBuffer('10.1.22.95', 27020, data[0], Length(data));
end;
procedure TForm1.UPDUDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle);
var
c: Char;
s: String;
begin
//LogBox.lines.Add(ABinding.PeerIP+':'+IntToStr(ABinding.PeerPort));
s:='';
while AData.Read(c, 1)<>0 do if (c>=#32) and (c<=#255) then s:=s+c;
if not (s = '') then
LogBox.lines.Add('Сервер работает!') else LogBox.lines.Add('Сервер не отвечает!');
end;
procedure TForm1.UPDStatus(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: String);
begin
LogBox.Lines.Add(AStatusText);
end;