Chinaunix首页 | 论坛 | 博客
  • 博客访问: 188723
  • 博文数量: 79
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 15
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-25 14:40
文章分类
文章存档

2015年(1)

2014年(1)

2013年(2)

2012年(1)

2011年(5)

2010年(2)

2009年(6)

2008年(20)

2007年(27)

2006年(14)

我的朋友

分类: Python/Ruby

2008-04-02 00:06:53

今晚因为工作的关系想了解一下网络广播,但是找了很久没有在中文网站上找到一套可用的例子,于是决定自己用python写一个,还好在e文网站上找到一个广播服务器的例子,自己写了客户端的,就是下面两个小程序了.


#!/usr/bin/env python
# this is the udp broadcast server
import socket, traceback
host = '' # Bind to all interfaces
port = 1234

print "python UDP multi case server test"


s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.bind((host, port))

for i in range(1,100):
    try:
        s.sendto("server here",('192.168.1.255', 2345))
        message, address = s.recvfrom(1234)
        print "Got data from", address,":",message
        # Acknowledge it.
        s.sendto("I am here", address)
    except (KeyboardInterrupt, SystemExit):
        raise
    except:
        traceback.print_exc()



#!/usr/bin/env python
#this is the udp broadcast client
import socket, traceback


port = 2345

print "python UDP multi case client test"

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)

data = "Data from pc"
s.bind(("",2345))
for i in range(1,100):
    try:
        data,address=s.recvfrom(2345)
        print "cli get data form", address, ":", data
        s.sendto("client ack", address)
        #data,address = s.recvfrom(1024)
        #print "received %r from %r" % (data, address)
    except (KeyboardInterrupt, SystemExit):
        raise
    except:
        traceback.print_exc()
    
print "test finsh"

阅读(7221) | 评论(0) | 转发(0) |
0

上一篇:UIP在ucos下的移植

下一篇:Python 八荣八耻

给主人留下些什么吧!~~