===== 短连接 ===== 使用一次就断开连接 run(){ connect // 建立连接 read // 读取请求包 process // 处理 write // 应答处理结果 close // 关闭 } ===== 长连接 ===== 连接服务器都多次使用 run(){ connect // 建立连接 while(NotEnd){ read // 读取请求包 process // 处理 write // 应答处理结果 } close // 关闭 } ===== 粘包_拆包 ===== 长连接的情况下,发送方发送多条消息 * 会在底层等待缓冲区满,一次性发送。这就会造成粘包。 * 接收方不及时接收缓冲区的包,造成多个包接收 解决这种问题有如下一些方法 * 给每个消息的消息头加上消息长度,明确消息边界 * 给每个消息之间设定分隔符边界 最好的方式时使用成熟的技术方案或框架,比如netty