【Python】udp网络程序-发送、接受数据

来源:互联网 发布:淘宝网冬季睡衣大全 编辑:程序博客网 时间:2024/06/04 20:08

udp网络程序-发送、接收数据

1. udp网络程序-发送数据

创建一个基于udp的网络程序流程很简单,具体步骤如下:

  1. 创建客户端套接字
  2. 发送/接收数据
  3. 关闭套接字

与发短信类似。

代码如下:

#coding=utf-8from socket import *# 1. 创建udp套接字udp_socket = socket(AF_INET, SOCK_DGRAM)# 2. 准备接收方的地址# '192.168.1.103'表示目的ip地址# 8080表示目的端口dest_addr = ('192.168.1.103', 8080)  # 注意 是元组,ip是字符串,端口是数字# 3. 从键盘获取数据send_data = input("请输入要发送的数据:")# 4. 发送数据到指定的电脑上的指定程序中udp_socket.sendto(send_data.encode('utf-8'), dest_addr)# 5. 关闭套接字udp_socket.close()

运行现象:

在Ubuntu中运行脚本:

在windows中运行“网络调试助手”:

问题: sendto()函数的两个参数分别表示什么含义

2. udp网络程序-发送、接收数据

#coding=utf-8from socket import *# 1. 创建udp套接字udp_socket = socket(AF_INET, SOCK_DGRAM)# 2. 准备接收方的地址dest_addr = ('192.168.236.129', 8080)# 3. 从键盘获取数据send_data = input("请输入要发送的数据:")# 4. 发送数据到指定的电脑上udp_socket.sendto(send_data.encode('utf-8'), dest_addr)# 5. 等待接收对方发送的数据 # 如果没有收到数据则会阻塞等待 直到收到数据recv_data = udp_socket.recvfrom(1024)  # 1024表示本次接收的最大字节数# 6. 显示对方发送的数据# 接收到的数据recv_data是一个元组# 第1个元素是对方发送的数据# 第2个元素是对方的ip和端口print(recv_data[0].decode('gbk'))print(recv_data[1])# 7. 关闭套接字udp_socket.close()

python脚本:

网络调试助手截图:

问题:recvfrom函数的参数、返回值的含义分别是什么?

3. 注意事项

如果UBuntu(Mac) 和 网络调试助手(windows)平台通信时 则需要在发送时使用UTF8编码,接收时使用GBK解码。

阅读全文
0 0