学习目标
- 网络编程
- 网络编程三要素
- TCP与UDP协议
- 基于TCP协议案例
设计模式
C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。
B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。
1.2 网络编程三要素及特点 ?
IP地址:设备在网络中的地址,是唯一的标识
- 端口:应用程序在设备中唯一的标识。(取值范围是0~65535)
- 协议:数据在网络中传输的规则,常见的协议有UDP协议和TCP协议
1.3 TCP与UDP协议之间区别 ?
| | UDP协议(用户数据报协议) | TCP协议(传输控制协议) | | —- | —- | —- | | 面向 | UDP是面向无连接通信协议 | TCP协议是面向连接的通信协议 | | 特点 | 速度快,有大小限制一次最多发送64K,数据不安全,易丢失数据 | 速度慢,没有大小限制,数据安全 |
1.4 TCP协议代码实现
//客户端
public class ClientDemo {
public static void main(String[] args) throws IOException {
//1 创建客户端Socket对象
Socket socket = new Socket("127.0.0.1",10086);
//2 获取网络中的字节输出流
//把网络中的字节输出流封装成高效的字符输出流
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
//3 给服务端发送一行字符数据
bw.write("你好");
bw.newLine();
bw.flush();
//给服务端反馈数据
//获取网络中的字节输入流,封装成高效的字符输入流
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line = br.readLine();
System.out.println(line);
//释放资源
br.close();
bw.close();
socket.close();
}
}
//服务端
public class ServerDemo {
public static void main(String[] args) throws IOException {
//1 创建ServerSocket 对象
ServerSocket serverSocket = new ServerSocket(10086);
//2. 监听客户端的连接
//Socket accept() : 该方法会一直阻塞直到建立连接
Socket socket = serverSocket.accept();
//3 获取网络中的字节输入流,封装成高效的字符输入流
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
//4 读取客户端发送的一行数据
String line = br.readLine();
System.out.println(line);
//给客户端反馈数据
//获取网络中的字节输出流,封装成高效的字符输出流
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
bw.write("你也好");
bw.newLine();
bw.flush();
bw.close();
br.close();
socket.close();
serverSocket.close();
}
}