TIdTcpServer コンポーネントを使用して、基本的なサーバー側アプリケーションを実装しています。私はクライアントにサーバーに文字列を送信させ、ascii エンコードし、文字 #@ で終わります。
例:
this_is_a_sample#@ thisis_another_sample#@
私の OnExecute メソッドは次のとおりです。
procedure TLX8511.ProcessEvent(AContext: TIdContext);
var
recv : String;
begin
with AContext.Connection.IOHandler do
begin
CheckForDataOnSource(20);
if not InputBufferIsEmpty then
begin
recv := ReadLn('#@');
WriteLn(recv);
end;
end;
end
ただし、ReadLn が実行されると、奇妙なエラーが表示されます。バッファ ターミネータを指定する必要があります。
私が間違っていることは何ですか?
LE : Linux で Indy と lazarus を使用しているので、これは移植の問題である可能性があります。
ありがとうございました。