socket--tcp传输

socket基本数据类型,不是java的,string在java不是基本数据类型

string 一个中文 =byte[3]

用bytebuffer封装byte[]

ByteBuffer包含几个基本的属性:

  • position:当前的下标位置,表示进行下一个读写操作时的起始位置;从0开始的。
  • limit:结束标记下标,表示进行下一个读写操作时的(最大)结束位置;
  • capacity:该ByteBuffer容量;

每次调用position方法,就会返回当前下标的位置

可以手动通过put(byte b)put(byte[] b)方法向ByteBuffer中添加一个字节或一个字节数组。ByteBuffer也方便地提供了几种写入基本类型的put方法:putChar(char val)putShort(short val)putInt(int val)putFloat(float val)putLong(long val)putDouble(double val)。执行这些写入方法之后,就会以当前的position位置作为起始位置,写入对应长度的数据,并在写入完毕之后将position向后移动对应的长度。下图就表示了分别向ByteBuffer中写入1个字节的byte数据和4个字节的Integer数据的结果:

BufferByte的put方法

get(byte[] dst, int offset, int length):表示尝试从 position 开始读取 length 长度的数据拷贝到 dst 目标数组 offset 到 offset + length 位置

get(byte[] dst):尝试读取 dst 目标数组长度的数据,拷贝至目标数组

原文地址:https://www.cnblogs.com/fpcbk/p/13745049.html