【发布时间】:2014-09-10 01:27:35
【问题描述】:
我正在尝试在 Python 中进行一些简单的套接字编程。我在 Python 中有一个 UDP 服务器,它接受输入并发送响应。我的客户端代码有问题。
sock = socket.socket(
socket.AF_INET, socket.SOCK_DGRAM
)
sock.bind(('0.0.0.0', 0))
sock.settimeout(2)
sock.sendto(json.dumps({
'operation': operation,
'operands': [operand1, operand2]
}), (host, port))
print sock.recvfrom(4096)
此代码在服务器运行时完美运行。但是,当我在没有服务器运行的情况下尝试它时,代码会立即抛出异常,而不是在 recvfrom() 上阻塞。
socket.error: [Errno 10054] An existing connection was forcibly closed by the remote host
我想要的功能是在一段时间后超时。 谁能解释我做错了什么?我在服务器代码中使用 recvfrom 并且它会阻塞,所以我有点不明白有什么区别。
【问题讨论】: