手机
当前位置:查字典教程网 >脚本专栏 >python >python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
摘要:UDP广泛应用于需要相互传输数据的网络应用中,如QQ使用的就是UDP协议。在网络质量不好的情况下,使用UDP协议时丢包现象十分严重,但UDP...

UDP广泛应用于需要相互传输数据的网络应用中,如QQ使用的就是UDP协议。在网络质量不好的情况下,使用UDP协议时丢包现象十分严重,但UDP占用资源少,处理速度快,UDP依然是传输数据时常用的协议。

下面是用python实现UDP服务器的代码:

复制代码 代码如下:

#!/usr/bin/env python

import socket

address=('127.0.0.1',10000)

s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

s.bind(address)

while 1:

data,addr=s.recvfrom(2048)

if not data:

break

print "got data from",addr

print data

s.close()

UDP客户端的代码:

复制代码 代码如下:

#!/usr/bin/env python

import socket

addr=('127.0.0.1',10000)

s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

while 1:

data=raw_input()

if not data:

break

s.sendto(data,addr)

s.close()

运行这两个程序,会显示以下结果:

服务器端:

python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)1

客户端:

python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)2

UDP的应用

在局域网中,如果要想局域网内所有计算机发送数据,可以使用广播,广播不能用TCP实现,可以用UDP实现,接受方收到广播数据后,如果有进程在侦听这个端口,就会接收数据,如果没有进程侦听,数据包会被丢弃。

广播的发送方:

复制代码 代码如下:

#!usr/bin/env python

import socket

host=''

port=10000

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))

while 1:

try:

data,addr=s.recvfrom(1024)

print "got data from",addr

s.sendto("broadcasting",addr)

print data

except KeyboardInterrupt:

raise

广播的接收方:

复制代码 代码如下:

#!/usr/bin/env python

import socket,sys

addr=('<broadcast>',10000)

s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

s.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1)

s.sendto("hello from client",addr)

while 1:

data=s.recvfrom(1024)

if not data:

break

print data

运行广播程序,发送端会显示以下结果:

复制代码 代码如下:

got data from (‘<地址>',<端口号>)

hello fromclient

接收端会显示以下结果:

复制代码 代码如下:(‘broading',(<IP地址>,10000))

【python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)】相关文章:

Python通过websocket与js客户端通信示例分析

python实现文件名批量替换和内容替换

Python编程语言的35个与众不同之处(语言特征和使用技巧)

python基础教程之udp端口扫描

Python操作Mysql实例代码教程在线版(查询手册)

python聊天程序实例代码分享

python网络编程学习笔记(四):域名系统

python检测服务器是否正常

python发送邮件的实例代码(支持html、图片、附件)

python网络编程学习笔记(九):数据库客户端 DB-API

精品推荐
分类导航