Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】
本文实例讲述了Python网络编程之UDP发送接收数据功能。分享给大家供大家参考,具体如下:
demo.py(UDP发送数据):
importsocket#导入socket模块
defmain():
#创建一个udp套接字
udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
#绑定本机ip和端口号(发送数据时,如果不绑定,系统会随机分配端口号。接收数据时,一般需要手动绑定ip和端口)
udp_socket.bind(("",7890))#空字符串""表示本地ip
#从键盘获取数据
send_data=input("请输入要发送的数据:")
#可以使用套接字接收和发送数据
#udp_socket.sendto(b"hahahah",("192.168.33.53",7788))#字符串前的b表示bytes字节类型
udp_socket.sendto(send_data.encode("utf-8"),("192.168.33.53",7788))#encode将字符串转成bytes类型
#关闭套接字
udp_socket.close()
if__name__=="__main__":
main()
demo.py(UDP接收数据):
importsocket
defmain():
#1.创建套接字
udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
#2.绑定本机ip和端口
udp_socket.bind(("",7788))#绑定本机的ip和端口(元组类型)""表示本机ip
#3.用套接字接收数据
recv_data=udp_socket.recvfrom(1024)#1024表示本次接收的最大字节数。会阻塞代码,直到接收到数据
#recv_data这个变量中存储的是一个元组(接收到的数据,(发送方的ip,port))
recv_msg=recv_data[0]#字节类型存储接收到的数据
send_addr=recv_data[1]#元组存储发送方的地址和端口信息
#4.打印接收到的数据
#print(recv_data)#元组(接收到的数据,(发送方的ip,port))
print("%s:%s"%(str(send_addr),recv_msg.decode("gbk")))#decode将字节转成字符串
#5.关闭套接字
udp_socket.close()
if__name__=="__main__":
main()
更多关于Python相关内容可查看本站专题:《PythonSocket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。