我正在使用Delphi XE4,使用UDPSocketClient我向服务器发送请求。 请求成功,但来自服务器的响应总是大约200个字节。 它应该是大约1000个字节。
我不知道为什么?!没有EOL休息或类似的东西。
是否可以阅读Chunks?
procedure TForm1.SendCommand(const Pass, ACommand: string);
var
Cmd: string;
begin
if UDPSocketClient.Connected then
begin
Cmd := Pass + ' ' + ACommand;
UDPSocketClient.Sendln(AnsiString(Cmd));
Memo1.Lines.Add('');
Memo1.Lines.Add('######################');
Memo1.Lines.Add(ACommand);
Memo1.Lines.Add('######################');
Memo1.Lines.Add('');
end;
end;
procedure TForm1.BtnSendCmdClick(Sender: TObject);
var
Buff: AnsiString;
received: string;
begin
if Assigned(CurrentServer) and (CmdEdit.Text <> '') and
(CmdEdit.Text <> CmdEditPlaceHolder) then
begin
SendCommand(CurrentServer.Password, CmdEdit.Text);
end;
try
received := String(UDPSocketClient.Receiveln(Buff));
Memo1.Lines.Add(received);
finally
CmdEdit.SetFocus;
end;
答案 0 :(得分:0)
我假设你正在使用TUDPSocket。
ReceiveLn
的参数是delimiter string to search for。您传递的是Buff
,这是一个空字符串,因此行为可能未定义。
答案 1 :(得分:0)
所以,现在我有一个解决方案的方法。
当我将命令发送到服务器时,有两种方法可以接收数据: