Python套接字客户端:发送数据和接收结果

Posted

技术标签:

【中文标题】Python套接字客户端:发送数据和接收结果【英文标题】:Python socket client: send data and receive result 【发布时间】:2021-06-25 14:45:28 【问题描述】:

我正在尝试在 python 中开发一个具有以下行为的应用程序。知道外部套接字服务器的存在,我目前可以通过 telnet 进行连接,结果如下:

telnet localhost 1234

当我连接到服务器时,会返回一条消息给我,例如:

欢迎

已经连接,我可以发送一些命令,并且对于每个命令我都有响应:

current-time

当我发送命令 current-time 服务器返回:

2021-03-29 11:38:55

然后循环继续......知道一切都在服务器上正常运行,让我们转到 python 应用程序。下面是我尝试的代码,我想知道我哪里出错了,因为我无法复制提到的操作(通过 telnet)。

1.  client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
2.
3.  client.connect(("localhost", 1234))
4. 
5.  welcome_response = client.recv(4096)
6.  print(welcome_response)
7.
8.  client.send('current-time'.encode())
9.
10. command_response = client.recv(4096)
11. print(command_response)

评论:

    welcome 消息作为第一次 recv 调用(第 5 行)的结果打印(第 6 行); 应用程序卡在第 10 行等待服务器响应...

【问题讨论】:

服务器是否在 Python 中工作?你能分享它以便我们重现吗? 不,不是。而且我无权访问代码,只有文档(命令和响应)...... 【参考方案1】:

已解决。问题是服务器期望 breakline (\n) 来识别客户端消息...

【讨论】:

以上是关于Python套接字客户端:发送数据和接收结果的主要内容,如果未能解决你的问题,请参考以下文章

使用 python 套接字发送/接收数据

Python套接字发送/接收逐渐变慢

同时发送/接收消息套接字python

如何编写连接到本地文件以发送和接收数据包的客户端套接字流

Python套接字不接收而不发送

Python Socket - 同时发送/接收消息