我用Python编写一个客户机,它注册到服务器上。该客户机向register
发送一个UDP包,并等待来自服务器的register accepted
响应包。在
有些数据包可能丢失,因为它是UDP,所以我需要代码:
发送数据包并等待5秒等待响应,如果没有收到数据包,则再次发送数据包,然后等待10秒,如果已经没有响应,则现在15秒,如果再次没有响应,则中断循环。在
我的问题是,要接收数据包,我要做的是:
skt1.sendto(pqtUdp,(srvAdr,prtUdp))
data,addrs = skt1.recvfrom(56)
rcvfrom是一种阻塞方法。我搜索了一下,我认为使用select
我可以知道何时收到一个包,然后读取套接字并获取它,但是我不知道如何去做,我找不到{
有人能帮我个忙吗?在
谢谢!在
如果将套接字设置为非阻塞,则可以轻松实现这一点。声明套接字后,请执行以下操作:
如果recvfrom()没有接收到数据包,那么它将引发一个错误,您可以处理该错误并继续处理,如下所示:
^{pr2}$这是一个使用scapy的简单任务:
sr是sendrecice函数,您可以使用inter和重试次数以及超时来指定等待间隔。
相关问题 更多 >
编程相关推荐