python进阶第五天

    技术2023-10-05  110

    网络编程及udp发送接收数据


    01.ip地址介绍及其分类

    IP地址与IP协议 规定网络地址的协议叫ip协议,它定义的地址称为ip地址。广泛采用的v4版本的即ipv4,它规定网络地址由32位2进制表示。 注意: • 一个ip地址通常写成四段十进制数 • 范围0.0.0.0-255.255.255.255

    ip地址分类图 端口分类 1.知名端口(well known ports)

    80端口分配给HTTP服务21端口分配给FTP服务 • 范围是从0到1023 2.动态端口动态端口的范围是从1024-65535 注意: • 在同一时间只会有一个程序占用一个端口,不可能在同一个计算机上同一时间有两个程序占用一个端口。

    02.socket简介

    socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。白话说,socket就是两个节点为了互相通信,而在各自家里装的一部’电话’。

    02.1UDP的发送和接收

    02.1.1 UDP的发送

    步骤: 1.创建套接字 2.使用套接字收/发数据 3.关闭套接字

    def main(): # 1.创建套接字 udp_s=socket.socket(family=socket.AF_INET,type=socket.SOCK_DGRAM) #绑定窗口 udp_s.bind(("",8080)) while True: send_data=input("请输入要发送的数据:") if send_data=="q": break # 2.发送数据 udp_s.sendto(send_data.encode("gbk"),("192.168.43.195",8080)) # 3.关闭套接字 udp_s.close() if __name__ == '__main__': main()

    02.1.2 UDP的接收

    步骤: 1.创建套接字 2.绑定本地信息(IP和端口) 3.接受数据 4.打印数据 5.关闭套接字

    import socket def main(): #1.创建套接字 udp_s=socket.socket(family=socket.AF_INET,type=socket.SOCK_DGRAM) #2.绑定本地信息 udp_s.bind(("192.168.43.195",7788)) #ip地址与端口号注意为元组,"":代表本地ip # 3.接收数据 recv_data=udp_s.recvfrom(1024) # print(recv_data) #(b'i love you', ('192.168.43.195', 8080)) data,info=recv_data #(ip,port):data # print(data,info) print(f"{info}:{data}") #3.关闭套接字 udp_s.close() if __name__ == '__main__': main()

    03.实例:实现UDP的同时发送及接收

    import socket def send_data(udp_s): """ 发送数据 """ send_d=input("请输入要发送的数据:") udp_s.sendto(send_d.encode("gbk"),("192.168.43.195",8080)) def recv_data(udp_s): """ 接收数据 """ recv = udp_s.recvfrom(1024) print(recv) def main(): #1.创建套接字 udp_s=socket.socket(family=socket.AF_INET,type=socket.SOCK_DGRAM) #2.绑定本地ip与端口 udp_s.bind(("",7979)) #3.先发送再接收 while True: #发送 send_data(udp_s) #接收 recv_data(udp_s) #4.关闭套接字 udp_s.close() if __name__ == '__main__': main()

    04.总结:UDP通讯流程

    Processed: 0.010, SQL: 9