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;
誰かが私が間違っていることを知っていますか?