我有一个套接字,我想在连接时超时,以便我可以取消整个操作,如果它无法连接,它也想要使用不需要超时的套接字的makefile.
有没有一种简单的方法可以做到这一点,或者这将是一件困难的事情吗?
python是否允许在连接后重置超时,以便我可以使用makefile并且仍然有套接字连接的超时
Joã*_*nto 91
您只需要settimeout()在尝试之前使用套接字方法connect(),请注意在连接之后必须settimeout(None)将套接字设置为阻塞模式,这对于makefile是必需的.这是我正在使用的代码:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(10)
sock.connect(address)
sock.settimeout(None)
fileobj = sock.makefile('rb', 0)
Run Code Online (Sandbox Code Playgroud)
Joh*_*ooy 17
如果您使用的是Python2.6或更新版本,则使用起来非常方便 socket.create_connection
sock = socket.create_connection(address, timeout=10)
sock.settimeout(None)
fileobj = sock.makefile('rb', 0)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
118798 次 |
| 最近记录: |