【发布时间】:2018-04-20 04:04:50
【问题描述】:
我有一个(第三方)套接字,它接受输入。我可以从命令行调用它:
nc www.host.com 1234 < inputfile.txt
然后我得到响应并关闭连接。 我尝试编写一个自动调用此服务的 python 脚本。我想直接(而不是从文件)向它发送数据。
我使用 python 脚本和 socket.send() 和 recv() 函数进行了尝试。但是该服务在连接时没有得到任何输入,因此它返回一个错误并关闭。调用 .send 时出现管道损坏错误(导致连接关闭) 我的代码(sn-p):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.send(data)
data = s.recv(256)
错误:
socket.error: [Errno 32] Broken pipe
该错误是因为如果没有数据,服务器会立即关闭套接字连接。 .send 为时已晚。
是否可以使用 python 在连接上发送数据(我认为是)
【问题讨论】:
-
您是否尝试过“编写一个自动调用此服务的 python 脚本”?它奏效了吗?如果没有,它是否产生错误消息?
-
@Robᵩ 我当然试过 ;) 编辑了我的问题
-
产生了什么错误?你用了什么代码?
-
是的,有可能……一切都是可能的
-
尝试使用 connect_ex 并查看它返回的内容,即它是否连接?