0

Delphi で tidtcpserver から tidtcpclient に文字列を送信しようとしましたが、文字列を送信してもクライアントは何も受信しません。エラーは発生しません。base64 文字列を送信したいので、tstringstream を使用しています (writeln/readln はそれほど多くのテキストを送受信できません)。これは idtcpserver1 の送信コードです。

procedure TForm1.sendtext(index:integer; txt:string);
var
  StrStream:tStream;
  List: TList;
  AContext: TIdContext;
begin
  txt := trim(txt);
  strstream := TMemoryStream.Create;
  strstream.Write(PAnsiChar(txt)^, Length(txt));
  strstream.Position := 0;
  List := idTcpServer1.Contexts.LockList;
  AContext := TIdContext(List[index]);
  AContext.Connection.IOHandler.write(StrStream);
  idTcpServer1.Contexts.UnLockList;
end;

これは idtcpclient1 の読み取りコードです

procedure TIndyClient.Execute;
var
StrStream:tStringStream;
receivedtext:string;
begin
StrStream := tstringstream.Create;
form1.IdTCPClient1.IOHandler.readstream(StrStream);
receivedtext := strstream.DataString;
if receivedtext = '' = false then
begin
  showmessage(receivedtext);
end;
end;

誰かが私が間違っていることを知っていますか?

4

1 に答える 1