含服务器端

服务器端sever代码:#!/usr/bin/pythonimportsocketaddress=(‘127.0.0.1’,10000)s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)s.bind(address)while1:data,addr=s.recvfrom(2048)ifnotdata:breakprint”gotdatafrom”,addrprintdatas.close()客户端client代码:#!/usr/bin/pythonimportsocketaddr=(‘127.0.0.1’,10000)s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)while1:data=raw_input()ifnotdata:breaks.sendto(data,addr)s.close()在ubuntu文件所在文件夹中运行两个终端,先在一个终端中运行客户端代码,因为客户端为发送端,服务器端为接收端,然后在另一个终端中运行服务器端代码,这样就可以模拟在客户端发送数据,服务器端接受数据并作显示。

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

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

服务器端:

图片 1

客户端:

图片 2
UDP的应用

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

广播的发送方:

发表评论

电子邮件地址不会被公开。 必填项已用*标注