【发布时间】:2011-09-27 16:42:16
【问题描述】:
我有一个使用阻塞套接字接收数据的服务。我遇到的问题是,如果套接字仍在等待数据,我不知道如何正确关闭它。下面是我如何打开和等待数据的简短片段:我不想实现超时,因为根据 python 文档,套接字必须阻塞才能使用makefile。
我可能完全错了,因为我是使用套接字编程的新手。
编辑:
需要注意的是,我不能改变服务器的运行方式。
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
reader = s.makefile("rb")
line = reader.readline()
【问题讨论】:
-
C 中的典型做法是向等待套接字的线程发送信号。信号处理程序可以
longjmpout 或简单地导致read以EINTR失败。
标签: python sockets networking