机器人开机以后局域网不断广播消息 另一台电脑接受消息 python UDP 不间断广播

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010918541/article/details/78235306

广播程序

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from socket import *  
import time
HOST = '<broadcast>'  
PORT = 21567  
BUFSIZE = 20 
ADDR = (HOST, PORT)  
udpCliSock = socket(AF_INET, SOCK_DGRAM)
#设置阻塞
udpCliSock.setblocking(1)
#设置超时时间
udpCliSock.settimeout(0.5)
udpCliSock.bind(('', 0))  
udpCliSock.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)  
while True:  
	data="Robot Online!"
	print "sending -> %s"%data  
	udpCliSock.sendto(data,ADDR)  
	try:
		data,ADDR = udpCliSock.recvfrom(BUFSIZE)
		if  data:  
			print data
		time.sleep(5)
	except Exception :
		continue
udpCliSock.close()  

接收端程序

#!/usr/bin/env python   
# -*- coding:UTF-8 -*-  
from socket import *  
from time import ctime  
HOST = '127.0.0.1'  
PORT = 21567  
BUFSIZE = 1024  
ADDR = (HOST,PORT)  
udpSerSock = socket(AF_INET, SOCK_DGRAM)
#设置阻塞
udpSerSock.setblocking(1)
#设置超时时间 8s
udpSerSock.settimeout(8)  
udpSerSock.bind(('',PORT))
RobotOnline=False
while True:  
	try: 
		data, addr = udpSerSock.recvfrom(BUFSIZE)  
		print 'Robot Online!'
		print'received message from %s >> %s' % (addr, data)  
		udpSerSock.sendto("Confirmed!",addr)  
	except Exception:
		print 'Robot Off'

udpSerSock.close()  


猜你喜欢

转载自blog.csdn.net/u010918541/article/details/78235306