UDP套接字
UDP服务器端编程一般步骤:
- 创建socket,用函数socket();
- 设置socket属性,用函数setsocket();
- 绑定IP地址、端口等信息到socket上,用函数bind();
- 循环接收数据,用函数recvfrom();
- 关闭网络连接。
UDP客户器端编程一般步骤:
- 创建socket,用函数socket();
- 设置socket属性,用函数setsocket();
- 绑定IP地址、端口等信息到socket上,用函数bind();
- 设置对方的IP地址和端口等属性;
- 发送数据,用函数sendto();
- 关闭网络连接。
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()
改变命运就两种方式,一个是机缘巧合遇见高人,一个是人到绝境的自我顿悟。除此之外的所谓思考都是在自己的认知里打转转,你永远是你,不断的重复着昨天的你,没有任何意外…