저는 UDPSocketClient와 함께 Delphi XE4를 사용 중이며 서버에 요청을 보냅니다. 요청은 성공적이지만 서버에서의 응답은 항상 약 200 바이트입니다. 약 1000 바이트 여야합니다.UDPSocketClient.Receiveln이 들어오는 모든 데이터를 처리하지 못합니다.
나는 이유가 무엇입니까?! EOL 휴식이나 그와 같은 것이 없습니다.
청크로 읽을 수 있습니까?
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;
서버 코드를 표시 할 수 있습니까? 아마 서버가 여러 개의 데이터 그램을 전송하고 있습니다 .. 또한 코드가 tx/rx 비트 – Roddy
주위에'begin ... end;'가없는 것처럼 보입니다. 복사 및 붙여 넣기시 손실 된 코드가 수정되었습니다. 서버는 공백이있는 1000 바이트 정도의 문자열을 전송합니다. 서버 소스가 없습니다. –
아무 것도 보내지 않아도받는다면 ..? 이상하게 보입니다. – Roddy