发布于 2014-10-01 07:00:01 | 739 次阅读 | 评论: 0 | 来源: 网友投递
Python编程语言
Python 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。
本文是一个python实现的udp数据报传输的方法,分别详细叙述了客户端与服务器端代码及相关函数用法,感兴趣的同学参考下.
服务端代码:
import socket port = 8081 s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) #从给定的端口,从任何发送者,接收UDP数据报 s.bind(("",port)) print 'waiting on port:',port while True: data,addr = s.recvfrom(1024) #接收一个数据报(最大到1024字节) print 'reciveed:',data,"from",addr
客户端代码:
import socket port = 8081 host = "localhost" s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) s.sendto("hello world",(host,port))
结果:先运行服务端,然后运行客户端,
服务端打印出:
waiting on port: 8081 reciveed: hello world from ('127.0.0.1', 62644)
补充:
socket.sendto(string[, flags], address)
官方文档如下:
Send data to the socket. The socket should not be connected to a remote socket, since the destination socket is specified by address. The optional flags argument has the same meaning as for recv() above. Return the number of bytes sent. (The format of address depends on the address family — see above.)address参数在协议类型为socket.SOCK_DGRAM时,address的结构为一个元组,(host,port)的格式