python:获取socket响应,2秒内没有相应就结束
时间: 2024-12-12 15:31:05 浏览: 6
在Python中,如果你正在使用socket编程并希望设置超时时间来接收服务器响应,你可以利用socket的recv()函数配合time模块的sleep()函数。下面是一个基本示例,展示了如何设置2秒超时:
```python
import socket
import time
# 创建socket连接
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('localhost', 8000)) # 连接到服务器
timeout = 2 # 设置超时时间为2秒
total_timeout = 0 # 初始化总等待时间
while total_timeout < timeout:
data = s.recv(1024) # 尝试接收数据,最多1024字节
if data: # 如果有数据返回,处理数据并继续等待
break
else: # 没有数据,等待一段时间再尝试
time.sleep(0.1) # 每次等待0.1秒
total_timeout += 0.1
if not data: # 如果超时还没收到数据,认为服务器无响应
print("2秒内未收到服务器响应,断开连接")
s.close()
```
在这个例子中,每0.1秒会尝试一次接收数据,直到累计达到2秒或成功接收到数据。
阅读全文