【发布时间】:2014-04-02 10:17:23
【问题描述】:
我正在用 Python 做一个客户端,它注册到服务器中。该客户端向register 发送一个UDP 数据包,并等待来自服务器的register accepted 响应数据包。
有一些数据包丢失的可能性,因为它是UDP,所以我需要代码:
发送数据包并等待5秒响应,如果没有收到数据包,则再次发送数据包然后等待10秒,如果已经没有响应,现在等待15秒,如果再次没有响应,则中断循环。
我的问题是要接收我正在做的数据包:
skt1.sendto(pqtUdp,(srvAdr,prtUdp))
data,addrs = skt1.recvfrom(56)
而 rcvfrom 是一种阻塞方法。我进行了搜索,我认为使用select 我可以知道我何时收到一个数据包然后读取套接字并获取它,但我不知道该怎么做,我找不到select 简单的例子我正在做。
有人可以帮帮我吗?
谢谢!
【问题讨论】:
标签: python sockets select delay recvfrom