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 注意: • 在同一时间只会有一个程序占用一个端口,不可能在同一个计算机上同一时间有两个程序占用一个端口。socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。白话说,socket就是两个节点为了互相通信,而在各自家里装的一部’电话’。
步骤: 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()步骤: 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()