指令 1.ipconfig 本机ip地址 打开终端,在黑窗口中输入ipconfig,回车后我们可以看到这两个不同的IP地址
相比于IPv4,IPv6优于前者这里不再赘述。而IPv4在早期有着简单、易于实现、互操作性好的优势,但是现在其地址逐渐耗尽。
2.ping ip地址 ip:终端唯一ip地址 (127.0.0.1 :本地回环地址)
3.port 端口号(用来识别TCP/IP网络中互连的主机和路由器)
七层模型
七层模型,也称为OSI(Open System Interconnection)参考模型,是国际标准化组织(ISO)制定的一个用于计算机或通讯系统间互联的标准体系。它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。
第一层 物理层
定义设备标准,如*网线*的接口类型、*管线*的接口类型、*各种传输介质*的传输速率等。物理
层的作用是尽可能地屏蔽掉底层的差异,透明的传输bit(比特)。
第二层 链路层
定义了如何让格式化数据进行传输,以及如何控制对物理介质的访问。这一层通常还提供错误检
测和纠正,以确保数据的可靠传输。例如要发送的数据包的大小,要传送的每个数据包的寻址方
式,使其到达预定的接收方,以及一种确保不超过一个节点尝试同时向接收方发送数据包的方法。
链路层协议: SDLC、HDLC、PPP、STP、帧中继等
第三层 网络层
将数据传输到目标地址;目标地址可以使多个网络通过*路由器*连接而成的某一个地址,主要负
责寻找地址和路由选择,网络层还可以实现拥塞控制、网际互连等功能在这一层,数据的单位称
为数据包(packet)。
网络层协议的代表包括:IP、IPX、RIP、OSPF等。
第四层 传输层
提供*端到端*的服务,可以实现流量控制、负载均衡。传输层信息包括端口、控制字和校验和。
传输层位于OSI的第四层,这层使用的设备时主机本身。数据包一旦离开网卡即进入网络传输层。
区块链,BT
传输层协议: TCP和UDP。
第五层 会话层
负责在网络中的两点*建立**、****维持和终止****通信***,记忆数据的分隔等数据传输相关的管
理。会话层的功能包括: 建立通信链路,保持会话过程通信链接的畅通,同步两个节点之间的对
话,决定通信是否被中断以及通信中断时决定从何处重新发送。
第六层 表示层
将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换为上层能够处理的格
式;主要负责数据格式的转换,确保一个系统的应用层信息可被另一个系统应用层读取具体来
说,就是将设备固有的数据格式转换为网络标准传输格式,不同设备对同一比特流解释的结果可
能会不同;因此,主要负责使它们保持一致。
表示层协议还对图片和文件格式信息进行解码和编码。
第七层 应用层
应用层是最靠近用户的OSI层。这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)
提供网络服务。
应用层协议:HTTP、FTP、SMTP、SNMP、 DNS、 HTTPS、 POP3等
Socket编程
在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方
式。通过 socket 这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数
据
基于TCP的socker编程 我们分别要创建服务端和客户端那么首先来看服务端
final int PORT = 9999;
/*
* 创建ServerSocket对象并绑定端口
*/
ServerSocket server = new ServerSocket(PORT);
System.out.println("服务端启动成功.....");
boolean f = true;
while (f) {
/*
* 监听客户端请求
*/
Socket socket = server.accept();
/*
* 获取输入流字节并将其转换为字符流
*/
InputStream stream = socket.getInputStream();
InputStreamReader in = new InputStreamReader(stream, "utf-8");
/*
* 创建缓存区
*/
char[] buffer = new char[48];
/*
* 读取流中数据将其放入缓存(buffer)中
*/
Socket socket1 = server.accept();//监听到客户端的socket
// 接收客户端请求
InputStream stream1 = socket.getInputStream();
InputStreamReader in1 = new InputStreamReader(stream,StandardCharsets.UTF_8);
char[] buffer1 = new char[64];
in.read(buffer);
String str = new String(buffer);
str = str.trim();
System.out.println("[来自客户端:] " + str);
server.close();
客户端
final int PORT = 10010;
final String HOST = "127.0.0.1";
Socket socket = new Socket(HOST, PORT);
OutputStream stream = socket.getOutputStream();
OutputStreamWriter out = new OutputStreamWriter(stream);
out.write("测试一下客户端数据");
out.flush();
socket.close();