虽然TCP协议是可靠传输协议,但是,在服务器端,接受缓冲总是有限的,因此,如果不将数据进行分包发送,在传送的过程中,就无法判断接受到的数据是上一次还没发完的部分,还是新发送的数据。同时,为了更方便地对接收到的数据根据不同的类型进行设计,需要将发送的数据的类型添加到要发送的数据中去,根据上面的两个方面的原因,需要在数据分包发送,并且加入包头。
数据包的设计如下:
由于在Java中,使用TCP Socket发送的时候,我使用的是BufferedOutputStream作为输出缓冲的,因此,发送的部分只能是byte数组,因此,必须将数据包中的int类型的变量转化为byte数组存储和发送,这个可以参考我前面的博客Java 将byte[] 与int类型互相转换 ,为了方