"《java TCP IP Socke编程》是一本深入探讨Java中TCP/IP套接字编程的中文教程,适合初学者和有一定基础的学习者。本书覆盖了从基础概念到高级特性的全面内容,旨在帮助读者理解并掌握网络通信的核心技术。"
1. **计算机网络、分组报文和协议**
计算机网络是多个设备通过通信链路相互连接形成的网络,用于数据传输。在TCP/IP模型中,数据被分割成称为分组的报文在网络中传输。协议则规定了这些分组如何打包、传输和解包,以确保数据的正确传递。
2. **地址和名字**
在网络通信中,每个设备都有一个唯一的IP地址,用于识别和定位。同时,域名系统(DNS)将易于记忆的域名转换为IP地址,方便用户访问。
3. **客户端和服务器**
客户端发起请求,而服务器响应这些请求。在TCP/IP通信中,客户端通常打开一个连接到服务器的套接字,发送请求,然后接收服务器的响应。
4. **套接字**
套接字是网络通信中的一个重要概念,它是应用程序与网络服务交互的接口。套接字包括TCP套接字和UDP套接字,分别对应面向连接的传输层协议TCP和无连接的UDP。
5. **TCP套接字**
- **TCP客户端**:创建套接字,连接到服务器的指定端口,通过输入输出流进行数据交换。
- **TCP服务器端**:监听特定端口,接受客户端的连接请求,建立连接后同样通过输入输出流进行通信。
6. **UDP套接字**
- **DatagramPacket类**:封装UDP数据报,包含数据和目标/源地址信息。
- **UDP客户端**:创建套接字,使用DatagramPacket发送数据,不建立持久连接。
- **UDP服务器端**:同样使用DatagramSocket监听,接收DatagramPacket,处理数据后可发送回应。
7. **发送和接收数据**
- **信息编码**:包括整型、字符串、文本以及位操作的编码方式。
- **组合输入输出流**:如BufferedInputStream和BufferedOutputStream,用于提高读写效率。
- **成帧与解析**:将数据分隔成有意义的单元以便正确解析。
- **Java特定编码**:如字符编码,如UTF-8,以及如何在Java中处理。
8. **多任务处理**
- **Java多线程**:允许程序同时执行多个任务,适用于并发服务器。
- **服务器协议**:如一对一、多线程服务器、线程池等设计模式。
- **Executor接口**:Java提供的线程池管理工具,便于资源管理和任务调度。
9. **阻塞和超时**
- 掌握TCP的accept()、read()和receive()函数的阻塞特性,以及如何设置超时避免程序挂起。
10. **多接收者**
- **广播**和**多播**:允许一个消息被多个接收者同时接收,多播节省网络资源。
11. **控制默认行为**
- 调整TCP参数,如Keep-Alive保持连接活跃,缓存区大小,超时设置,地址重用,消除缓冲延迟,紧急数据处理,关闭后停留时间,广播许可和通信等级等。
12. **NIO(Non-blocking I/O)**
- NIO解决了传统I/O模型中的阻塞问题,提供了一种高效的数据处理方式。
- **Channel** 和 **Buffer** 结合使用,实现非阻塞读写。
- **Selector** 用于监控多个通道,实现多路复用。
13. **Applets**
- 在浏览器环境中运行的Java小程序,可以用于创建互动网页应用。
本书通过丰富的示例和练习,逐步引导读者深入理解并熟练掌握Java中的TCP/IP套接字编程,无论是基础操作还是高级特性,都能为读者提供宝贵的实战经验。