DSP

UDP实现网络通信

2019-07-13 15:06发布

udp网络实现网络通信


udp从目标主机接收数据实现流程:
1. udp网络程序-发送数据编程实现
1. udp网络程序-发送数据编程实现
udp发送数据实现流程:
1. 创建一个udp 的socket对象
2. 通过udp发送消息
udp.sendto()
3. 关闭udp 对象
udp.close()
2.udp网络程序-接收数据实现
1. 创建一个udp 的socket对象
2. 通过udp发送消息
udp.sendto()
3. 从目标主机接收数据
udp.recvfrom()
3. 关闭udp 对象
udp.close() 具体代码: import socket def main(): #. 创建一个udp 的socket对象 udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) """ #通过udp的socket对象发送数据 sendto(data[,filgs],address) data:要发送的数据 address 目标主机的地址,这里发送的是一个元祖类型,第一个元素是:ip地址, 第二个元素是端口号 #准备要发送给目标主机的数据 send_data = input("请输入要发送的数据:") #准备目标主机的地址 dest_addr = ('192.168.78.21',8080) #元祖类型 #将字符串编码,把字符串转换成字节串 data = send_data.encode('utf-8') #发送数据到目标主机 udp_socket.sendto(data,dest_addr) #从目标主机接收数据 阻塞状态 recv_data = udp_socket.recvfrom(1024) #显示接收到的消息 #它回传的也是一个元祖类型,第一个元素是回传的消息,第二个是回传主机的ip和端口 recv_info = recv_data[0].decode('gbk') recv_addr = str(recv_data[1]) print("接收到的消息:%s,消息来自<<<%s"%(recv_info,recv_addr)) #关闭socket对象 udp_socket.close() if __name__ == '__main__': main() udp的注意点:
1.recvfrom它回传的也是一个元祖类型,第一个元素是回传的消息,第二个是回传主机的ip和端口
2.发送目标主机的地址时也是一个元祖类型的发送,包括ip地址及端口号