做tcp网络编程,要解析一批批的数据,可是数据是通过Socket连接的InputStream一次次读取的,读取到的不是需要转换的对象,而是要直接根据字节流和协议来生成自己的数据对象。按照之前的编程思维,总是请求然后响应,当然Socket也是请求和响应,不过与单纯的请求响应是不同的。这里Socket连接往往是要保持住的,也就是长连接,然后设置一个缓冲区,网络流不断的追加到缓冲区。例如,100个字节是一个数据体,可是目前缓冲区内包含了120个字节,这就是说缓冲区包含了一条数据,但是还有没有传递完的字节流。那缓冲区就剩下20个字节了,这些数据可能在下次流中补充完成。ByteBuffer 中有几个属性,其中有两个很重要。position开始在0,填充数据后等于数据的长度,而limit是整个缓冲可用的长度。

Java ByteBuffer网络编程用法实例解析

Java ByteBuffer网络编程用法实例解析

Java ByteBuffer网络编程用法实例解析

Java ByteBuffer网络编程用法实例解析

Java ByteBuffer网络编程用法实例解析