我用IdUDPServer与IDUDPClient,每次Client向Server发送3个报文
在调试状态,Server每次都能常接收,但直接运行EXE后,会出现两种情况
1、正常,每次都能收到3个
2、异常,只能收到1个,且一定是最后一次
第1种情况比第2种情况多
这是什么原因?郁闷...
在调试状态,Server每次都能常接收,但直接运行EXE后,会出现两种情况
1、正常,每次都能收到3个
2、异常,只能收到1个,且一定是最后一次
第1种情况比第2种情况多
这是什么原因?郁闷...
procedure TfrmMain.IdUDPSUDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
beginend;
procedure TfrmMain.IdUDPSUDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
sData: TStringStream;
sl:TStringList;
i: Integer;
begin
sData := TStringStream.Create('');
sl := TStringList.Create;
try
sData.CopyFrom(AData, AData.Size);
sl.Delimiter := G_DELIMITERCHAR;
sl.DelimitedText := sData.DataString;
if sl.Count = 0 then Exit;
//判断是否已经存在了
for i := 0 to G_App.Count - 1 do
if G_App[i] = sl[0] then Exit; //G_App是一个结构体,为了方便说明,暂时用Stringlist代替
G_App.Add(sl[0]);
finally
FreeAndNil(sData);
FreeAndNil(sl);
end;
end;