目录
网络通信基本概念
什么是网络?
- 在计算机领域中,网络是信息传输、接收、共享的虚拟平台
- 在通过它把各个点、面、体的信息联系到一起,从而实现这些资源的共享
- 网络是人类发展史来最重要的发明,提高了科技和人类社会的发展
网络通信的基本架构
通信的基本架构主要有两种形式:一种是CS架构(Client 客户端/Server服务端)、一种是BS架构(Brower 浏览器/Server服务端)。
- CS架构的特点:CS架构需要用户在自己的电脑或者手机上安装客户端软件,然后由客户端软件通过网络连接服务器程序,由服务器把数据发给客户端,客户端就可以在页面上看到各种数据了。
- BS架构的特点:BS架构不需要开发客户端软件,用户只需要通过浏览器输入网址就可以直接从服务器获取数据,并由服务器将数据返回给浏览器,用户在页面上就可以看到各种数据了。Java的程序员,以后从事的工作方向主要还是BS架构的。
什么是网络编程?
- 网络编程从大的方面说就是对信息的发送到接收
- 通过操作相应Api调度计算机硬件资源,并利用传输管道(网络)行数据交换的过程
7层网络模型-OSI模型
基础层∶物理层(Physical)、数据链路层(Datalink)、网络层(Network)
传输层(Transport) : TCP-UDP协议层、Socket
高级层∶会话层(Session)、表示层(Presentation)、应用层(Application)
模型对应关系图
什么是Socket?
- 简单来说是IP地址与端口的结合协议(RFC 793 )
- 一种地址与端口的结合描述协议
- TCP/IP协议的相关API的总称;是网络Api的集合实现
- 涵盖了: Stream Socket/Datagram Socket
Socket的作用和组成
- 在网络传输中用于唯一标示两个端点之间的链接
- 端点∶包括(IP+Port )
- 4个要素:客户端地址、客户端端口、服务器地址、服务器端口
Socket传输原理
Socket与TCP、UDP的关系
Socket就是对TCP、UDP之间的封装
Socket 之 TCP
- TCP是面向连接的通信协议
- 通过三次握手建立连接,通讯完成时要拆除连接
- 由于TCP是面向连接的所以只能用于端到端的通讯
图解
Socket 之 UDP
- UDP是面向无连接的通讯协议
- UDP数据包括目的端口号和源端口号信息
- 由于通讯不需要连接,所以可以实现广播发送,并不局限于端到端
图解
CS模型(Client-Server Application)
- TCP/IP协议中,两个进程间通信的主要模式为:CS模型
- 主要目的:协同网络中的计算机资源、服务模式、进程间数据共享
- 常见的:FTP、SMTP、HTTP
报文段
- 报文段是指TCP/IP协议网络传输过程中,起着路由导航作用
- 用以查询各个网络路由网段、IP地址、交换协议等lIP数据包
- 报文段充当整个TCP/IP协议数据包的导航路由功能
- 报文在传输过程中会不断地封装成分组、包、帧来传输
- 封装方式就是添加一些控制信息组成的首部,即报文头
牛刀小试(TCP消息发送与接收)
Socket客户端实现
代码如下
package cn.kt.SocketDemoL2;
import java.io.*;
import java.net.Inet4Address;
import java.net.InetSocketAddress;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws IOException {
Socket socket = new Socket();
// 超时时间
socket.setSoTimeout(3000);
// 连接本地,端口2000;超时时间3000ms
socket.connect(new InetSocketAddress(Inet4Address.getLocalHost(), 2000), 3000);
System.out.println("已发起服务器连接,并进入后续流程~");
System.out.println("客户端信息:" + socket.getLocalAddress() +