Показать сообщение отдельно
  #5  
Старый 16.05.2011, 09:57
Человек_Борща Человек_Борща вне форума
Новичок
 
Регистрация: 17.09.2010
Адрес: Беларусь, г. Минск
Сообщения: 58
Версия Delphi: 7, 2010,XE
Репутация: 10
По умолчанию

Допустим а если сервера по указаному порту не существует? как это определить?

Определяет что сервер только работает. А вот что он не работает, программа не пишет.

Код:
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;
Ответить с цитированием