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程序设计有所帮助。