① python如何判断和对端Linux主机是网络通
#!/user/bin/(ip):4cmd='ping-n1%s'%ip5outfile='ping.tmp'6ret=subprocess.call(cmd,shell=Ture,stdout=open(outfile,'a+'),stderr=subprocess.STOUT)7ifret==0:8print"%sserverisalive"%ip9else10print"%sserverisdown"%ip1112if'__name__'=='__main__'13ping(192.1.1.1)
② 如何用Python实现实时的网络连接检测
如果你用的socket包里的那些阻塞接口,当然写个线程循环监测时间也没啥,只不过记得在循环内加上个sleep,哪怕是1ms甚至1us的sleep都可以避免CPU被消耗干净。
如果你所说的接收是死循环式里跑socket.recv,它会在recv里阻塞,按你的说法3分钟一个心跳包,时间检测就成了3分钟一次,不太合适。
更好的办法自然是通过epoll/poll之类的方式或者asyncio/twisted/tornado之类的异步回调/协程加时间事件甚至是各种GUI框架的事件循环来启动你的发送和接收。考虑到以后可能有多设备,显然利用这些成型的玩意更合理。