源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-06-13 05:46 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
UDP广泛应用于需要相互传输数据的网络应用中,如QQ使用的就是UDP协议。在网络质量不好的情况下,使用UDP协议时丢包现象十分严重,但UDP占用资源少,处理速度快,UDP依然是传输数据时常用的协议。 下面是用python实现[b]UDP服务器的代码: [/b]
[u]复制代码[/u] 代码如下:
#!/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()
[b]UDP客户端的代码:[/b]
[u]复制代码[/u] 代码如下:
#!/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()
运行这两个程序,会显示以下结果: 服务器端: [img]http://files.jb51.net/file_images/article/201404/2014425104027643.jpg?2014325104042[/img] 客户端: [img]http://files.jb51.net/file_images/article/201404/2014425104102924.jpg?2014325104114[/img] UDP的应用 在局域网中,如果要想局域网内所有计算机发送数据,可以使用广播,广播不能用TCP实现,可以用UDP实现,接受方收到广播数据后,如果有进程在侦听这个端口,就会接收数据,如果没有进程侦听,数据包会被丢弃。 广播的发送方:
[u]复制代码[/u] 代码如下:
#!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
广播的接收方:
[u]复制代码[/u] 代码如下:
#!/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
运行广播程序,发送端会显示以下结果:
[u]复制代码[/u] 代码如下:
got data from (‘<地址>',<端口号>) hello fromclient
接收端会显示以下结果:
[u]复制代码[/u] 代码如下:
(‘broading',(<IP地址>,10000))
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部