1.TCP通信
1.1 Socket通信模型
1.1.1 【Socket通信模型】Server端多线程模型
若想使一个服务端可以支持多客户端连接,我们需要解决以下问题:
- 循环调用accept方法侦听客户端的连接
- 使用线程来处理单一客户端的数据交互
因为需要处理多客户端,所以服务端要周期性循环调用accept方法,但该方法会产生阻塞,所以与某个客户端的交互就需要使用线程来并发处理。
2. UDP通信
2.1 DatagramPacket
2.1.1 构建接收包
DatagramPacket:UDP数据报基于IP建立的,每台主机有65536个端口号可以使用。数据报中字节数限制为65536-8
构造接收包:
-DatagramPacket(byte[] buf, int length)将数据包中length长的数据装进buf数组。
-DatagramPacket(bytel] buf, int offset, int length)将数据包中从offset开始、length长的数据装进buf数
2.1.2 构建发送包
DatagramPacket(bytel} buf