zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

UDP套接字

2023-03-14 09:45:34 时间

UDP服务器端编程一般步骤:

  1. 创建socket,用函数socket();
  2. 设置socket属性,用函数setsocket();
  3. 绑定IP地址、端口等信息到socket上,用函数bind();
  4. 循环接收数据,用函数recvfrom();
  5. 关闭网络连接。

UDP客户器端编程一般步骤:

  1. 创建socket,用函数socket();
  2. 设置socket属性,用函数setsocket();
  3. 绑定IP地址、端口等信息到socket上,用函数bind();
  4. 设置对方的IP地址和端口等属性;
  5. 发送数据,用函数sendto();
  6. 关闭网络连接。
 1 import socket
 2 #  使用udp收发数据
 3 def main():
 4     #  1.创建socket套接字
 5     udp_socket = socket.socket(socket.AF_INET, sock.SOCK_DGRAM)  # AF_INET表示使用ipv4,默认不变,SOCK_DGRAM表示使用UDP通信协议
 6      
 7     #  2.绑定端口port
 8     local_addr = ("", 7878)  # 默认本机任何ip ,指定端口号7878
 9     udp_socket.bind(local_addr)  # 绑定端口
10      
11     #  3.收发数据
12     send_data = input("请输入您想要发送的数据:" )
13     udp_socket.sendto(send_data.encode("utf-8"), ("10.80.34.68", 8080))  # 编码成全球统一数据格式,用元组表示接收方ip和port
14     recv_data = udp_socket.recvfrom(1024)  # 定义单次最大接收字节数
15      
16     #  4.打印数据
17     recv_msg = recv_data[0]  # 接收的元组形式的数据有两个元素,第一个为发送信息
18     send_addr = recv_data[1]  # 元组第二个元素为发信息方的ip以及port
19     print ("收到的信息为:", recv_msg.decode("gbk"))  # 默认从windows发出的数据解码要用”gbk”,保证中文不乱码
20     print ("发送方地址为:", str(send_addr))  # 强转为字符串输出地址,保证不乱码
21      
22     #  5.关闭套接字
23     udp_socket.close()
24 if __name__ == "__main__":
25    main()