Python socket模块实现的udp通信功能示例
本文实例讲述了Pythonsocket模块实现的udp通信功能。分享给大家供大家参考,具体如下:
socket介绍
socket(简称套接字)是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:
它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于Socket来完成通信的,例如我们每天浏览网页、QQ聊天、收发email等等。
模拟udp_socket客户端(发送端):udp_client.py
#coding=utf-8 importsocket #获取本机的ip地址 defget_addr(): #获取本机计算机名称 hostname=socket.gethostname() #获取本机ip并返回 returnsocket.gethostbyname(hostname) #创建udp套接字, #AF_INET表示ip地址的类型是ipv4, #SOCK_DGRAM表示传输的协议类型是udp udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) #要发送的信息 test_data=raw_input('请输入要发送的消息:') print'send_data=',test_data #要发送的ip地址和端口(元组的形式) host=get_addr() test_addr=(host,8080) print'send_addr=',test_addr print'preparetosend------' #发送消息 udp_socket.sendto(test_data,test_addr) #关闭套接字 udp_socket.close() print'sendend------'
模拟udp_socket套接字服务端(接收端):udp_server.py
#coding=utf-8 importsocket #获取本机的ip地址 defget_addr(): #获取本机计算机名称 hostname=socket.gethostname() #获取本机ip并返回 returnsocket.gethostbyname(hostname) #创建udp套接字, #AF_INET表示ip地址的类型是ipv4, #SOCK_DGRAM表示传输的协议类型是udp udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) #绑定本地信息,若不绑定,系统会自动分配 host=get_addr() bind_addr=(host,8080) print'bind_addr=',bind_addr udp_socket.bind(bind_addr)#ip和port,ip一般不用写,表示本机的任何一个ip #等待接收数据 revc_data=udp_socket.recvfrom(1024)#1024表示本次接收的最大字节数 #打印接收到的数据 print'revc_data=',revc_data print'data=',revc_data[0] print'ip_port=',revc_data[1] #关闭套接字 udp_socket.close()
更多关于Python相关内容可查看本站专题:《PythonSocket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。