gpt4 book ai didi

delphi - Indy TCP 客户端 ReadLn 函数挂起

转载 作者:行者123 更新时间:2023-12-01 19:49:21 27 4
gpt4 key购买 nike

我使用 TClientSocket 与 Python 服务器进行了套接字通信。在意识到我无法使用 TClientSocket 在客户端上拥有更多功能后,我决定使用 INDY。我使用 Delphi Indy 为客户端和服务器制作了一个小测试应用程序。这有效。

但是它现在不适用于 Python。 Python 接收连接和消息都很好,但是当它响应时,我的 Delphi 什么也得不到。我对 fIdTCPClient1.IOHandler.ReadLn() 的调用永远坐在那里。

要从非 INDY 服务器向 INDY 发送消息,是否需要执行一些特殊操作?

procedure TForm3.Button3Click(Sender: TObject);
begin
fIdTCPClient1 := TIdTCPClient.Create(nil);
fIdTCPClient1.Port := 20200;
fIdTCPClient1.Host := '127.0.0.1';//'localhost';
fIdTCPClient1.Connect;
fIdTCPClient1.IOHandler.WriteLn('You there');

msg := fIdTCPClient1.IOHandler.ReadLn();
ShowMessage(msg);
end;

Python端的连接

    HOST = '127.0.0.1'                                  # Localhost
PORT = 20200

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.bind((HOST, PORT))
s.listen(1)
except socket.error:
s.close()
s = None
return -1

Python 发送/接收

data = conn.recv(4096).strip()
print data
conn.send('I am here')

最佳答案

函数 IdTCPClient1.IOHandler.ReadLn() 挂起并等待,直到接收到“行尾”(#13#10\r\n) 来自服务器。添加服务器端响应,末尾带有 \r\n

关于delphi - Indy TCP 客户端 ReadLn 函数挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19325511/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com