对方数据协议 应该会说明 内容是用什么编码 的 安装对应的解码
protected static System.Text.UTF8Encoding utfenc = new System.Text.UTF8Encoding(false);
byte[] buff = utfenc.GetBytes(str);
value = (ushort)buff.Length;
_stream.WriteByte((byte)(value));
_stream.WriteByte((byte)(value >> 8));
_stream.Write(buff, 0, buff.Length);
写流是这样写的
这部分是不是协议?这要看发送方是怎么定义的,你才知道怎么去处理
protected static System.Text.UTF8Encoding utfenc = new System.Text.UTF8Encoding(false);
byte[] buff = utfenc.GetBytes(str);
value = (ushort)buff.Length;
_stream.WriteByte((byte)(value));
_stream.WriteByte((byte)(value >> 8));
_stream.Write(buff, 0, buff.Length);
写流是这样写的
@小光: 前两个byte是数据长度,
int len= array[0] &0xff;
len=(array[1]<<8) &0xff;
算出string的长度,array[2] 到 arrary[len] ,就是字符内容了。
@shotgun's_blog: 怎么给len赋值两次
@小光:
int len= array[0] &0xff;
len|=(array[1]<<8) &0xff00; //修正一下这里