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数据的结果:
get(byte[] dst, int offset, int length)
:表示尝试从 position 开始读取 length 长度的数据拷贝到 dst 目标数组 offset 到 offset + length 位置
get(byte[] dst)
:尝试读取 dst 目标数组长度的数据,拷贝至目标数组