2
我与使用TClientSocket的Python服务器进行套接字通信。在意识到我无法使用TClientSocket的客户端之后,我决定使用INDY。我使用Delphi Indy为客户端和服务器制作了一个小测试应用程序。这工作。Indy TCP客户端ReadLn函数挂起
但是它现在不适用于Python。 Python接收连接并且消息很好,但是当它响应时,我的Delphi没有任何东西。我对fIdTCPClient1.IOHandler.ReadLn()的调用只是永远在那里。
从非INDY服务器向INDY发送消息有什么特别之处吗?上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
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发送/收到
data = conn.recv(4096).strip()
print data
conn.send('I am here')
我认为ReadLn()读取一个完整的行,所以我只是在您发送的字符串末尾添加\ n。你尝试过吗? – mguijarr
谢谢,就是这样。如果您想要信用,请将其作为解决方案发布。 – runfastman