启动器中的udp问题

时间:2018-06-26 19:44:34

标签: delphi delphi-10.1-berlin

是否可以检查我们是否与服务器没有任何连接?我已经编写了这段代码。我知道UDP没有此功能,但我想在UDP中执行此操作。

procedure TForm1.Button4Click(Sender: TObject);
var
  Reg : TRegistry;
  odebrany,lgraczy,mgraczy,hostname:string;
begin
  Application.Title:=Caption;
  UDPClient.ReceiveTimeout := 2000;
  UDPClient.Host:=IdIPWatch1.LocalIP;
  UDPClient := TIdUDPClient.Create(Self);
  UDPClient.Active := True;
  StrList.Lines.Text:= ip;
  StrList.Lines.Text:=StringReplace(StrList.Lines.Text, '.', #13, [rfReplaceAll]);
  Buffer := 'SAMP' + Chr(StrToIntDef(StrList.Lines[0], 100)) + Chr(StrToIntDef(StrList.Lines[1], 100)) + Chr(StrToIntDef(StrList.Lines[2], 100)) + Chr(StrToIntDef(StrList.Lines[3], 100));
  //Port >> 8 + i
  Buffer := Buffer + Chr(port and 255) + Chr((port shr 8) and 255)+ 'i';
  UDPClient.Send(ip,port,Buffer);
  odebrany:=UDPClient.ReceiveString();
  /**/When odebrany take string program crash here!-**---------------------------------------
  if ( Trim(odebrany) = '' ) then
  begin
    ShowMessage(error);
    ShellExecute(Handle, 'open', 'cmd.exe', '/c taskkill /F /IM launcher.exe /T' , nil, SW_HIDE);
  end;
end;

我正在尝试这种方法,但是它不起作用

if ( Trim(odebrany) = '' ) then
begin
  ShowMessage(error);

因为程序提早停止了。

0 个答案:

没有答案