如何用Python实现实时的网络连接检测
展开全部
如果你用的socket包里的那些阻塞接口,当然写个线程循环监测时间也没啥,只不过记得在循环内加上个sleep,哪怕是1ms甚至1us的sleep都可以避免CPU被消耗干净。
如果你所说的接收是死循环式里跑socket.recv,它会在recv里阻塞,按你的说法3分钟一个心跳包,时间检测就成了3分钟一次,不太合适。
更好的办法自然是通过epoll/poll之类的方式或者asyncio/twisted/tornado之类的异步回调/协程加时间事件甚至是各种GUI框架的事件循环来启动你的发送和接收。考虑到以后可能有多设备,显然利用这些成型的玩意更合理。
如果你所说的接收是死循环式里跑socket.recv,它会在recv里阻塞,按你的说法3分钟一个心跳包,时间检测就成了3分钟一次,不太合适。
更好的办法自然是通过epoll/poll之类的方式或者asyncio/twisted/tornado之类的异步回调/协程加时间事件甚至是各种GUI框架的事件循环来启动你的发送和接收。考虑到以后可能有多设备,显然利用这些成型的玩意更合理。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询