JAVA网络编程必备知识储库
软件结构
- C/S结构:全称Client/Server结构,指客户端和服务端结构,常见程序QQ、迅雷
- B/S结构:全称Browser/Server结构,是指浏览器结构和服务器结构,常见浏览器谷歌、火狐
两种架构各有优势,但无论哪种架构都离不开网络的支持,网络编程,就是在一定的协议下,实现两台电脑的通信协议。
网络通信协议
- 网络通信协议:通过计算机网络可以使多台计算机连接,位于同一个网络的计算机在进行连接和通信是必须遵守一定的规则。
- TCP/IP协议:传输控制协议/因特网互联协议,是Internet最基本,最广泛的协议,定义计算机如何连入因特网,以及数据如何在它们之间传输的标准,它的内部包含了一系列用于处理数据通信的协议,并采用四层分层模式,每一层都呼叫他的下一层所提供的协议完成自己的需求。分为应用层、传输层、网络层、物理层
协议分类
- UDP:用户数据报协议。UDP是无连接通信协议,即在通信的时候发送端和接收端不建立逻辑连接。特点:消耗资源小,通信效率高但不能保证数据的完整性,通常音频,视频电话用UDP协议
- TCP:传输控制协议,是面向连接的通信协议,即通信前发送端和接收端建立逻辑连接,而这个连接包含一个对象IO流对象,在传输数据,由客户端向服务端发送请求连接,每次连接的创建都需要经过三次挥手,确保连接的可靠。
-
- 第一次握手:客户端向服务端发出请求连接,等待服务端请求连接
-
- 第二次握手:服务端向客户端回送一个响应,通知客户端收到了连接请求
-
- 第三次握手:客户端再次向服务端发送确认信息,确认连接
IP地址
- IP地址:指互联网协议地址,IP地址给一个网络中计算机设备做唯一的编号,相当于电话号码
- IP地址分类:IPV4、IPV6
- 查看本机IP地址,在控制台输入
ipconfig
ping 空格 IP地址
- 127.0.0.1、localhost代表本机IP
端口号
端口号:当我们网络软件一打开,那么操作系统会为网络软件分配一个随机端口号 或者给操作系统要一个指定端口号
TCP通信程序
1、服务端程序,需要事前启动,等待客户端连接 2、客户端主动连接服务端,连接成功才能通信,服务端不可以主动连接客户端
1、客户端:java.net.Socket类表示,创建Socket对象,向服务端发出连接请求,服务端响应请求,两者建立,连接开始通信 2、服务端:java.net.ServerSocket类表示,创建ServerSocket对象,相当于开启一个服务,并等待客户端的连接。
TCP通信协议代码展示
客户端
public class TCPClient {
public static void main(String[] args) throws IOException {
Socket socket= new Socket("127.0.0.1",8888);
OutputStream os = socket.getOutputStream();
InputStream is = socket.getInputStream();
os.write("你好".getBytes(StandardCharsets.UTF_8));
byte []bytes=new byte [1024];
int len = is.read(bytes);
System.out.println(new String (bytes,0,len));
socket.close();
}
}
服务端
public class TCPServer {
public static void main(String[] args) throws IOException {
ServerSocket st=new ServerSocket(8888);
Socket socket = st.accept();
InputStream is = socket.getInputStream();
byte []bytes=new byte [1024];
int len = is.read(bytes);
System.out.println(new String (bytes,0,len));
OutputStream os = socket.getOutputStream();
os.write("谢谢".getBytes(StandardCharsets.UTF_8));
st.close();
socket.close();
}
}
|