UDP实现网络通信

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地址及端口号

你可能感兴趣的:(UDP实现网络通信)