110,534
社区成员
发帖
与我相关
我的任务
分享
Byte[] Message;
Byte[] byte_Length=new byte[4];
int SendLength = Message.Length; //获取Message的长度
byte_Length = System.Text.Encoding.UTF8.GetBytes(SendLength.ToString()); //转成Byte
var str = @"dfafd ad f
4324234";
var serializer = new JavaScriptSerializer();
var msg = serializer.Serialize(str); //发消息用msg
var str2 = serializer.Deserialize<string>(msg); //解析消息结果为 str2
Debug.Assert(str == str2);
在发消息时,在 msg 的最后加上回车,然后接收消息端用回车符号作为消息结束符,来识别消息。
实际上传字符串方式也是一种很常见的通讯方式。最近10几年许多通讯框架都是基于字符串序列化机制的(支持两端程序版本不一致,两端解析同一个对象的属性顺序颠倒、增删,仍然可以顺利解析消息对象),而几十年前的老的电信业一类的软件才会抠字节报文。
[/quote]
我这边是socket去传输数据的,所以都要转换成Byte数组,然后解析的~var str = @"dfafd ad f
4324234";
var serializer = new JavaScriptSerializer();
var msg = serializer.Serialize(str); //发消息用msg
var str2 = serializer.Deserialize<string>(msg); //解析消息结果为 str2
Debug.Assert(str == str2);
在发消息时,在 msg 的最后加上回车,然后接收消息端用回车符号作为消息结束符,来识别消息。
实际上传字符串方式也是一种很常见的通讯方式。最近10几年许多通讯框架都是基于字符串序列化机制的(支持两端程序版本不一致,两端解析同一个对象的属性顺序颠倒、增删,仍然可以顺利解析消息对象),而几十年前的老的电信业一类的软件才会抠字节报文。
int length = 155;
byte[] bs1 = BitConverter.GetBytes(length); // {155, 0, 0, 0}
byte[] bs2 = Encoding.ASCII.GetBytes(length.ToString("0000")); // {'0','1','5','5'}
int l1 = BitConverter.ToInt32(bs1, 0); // 155
int l2 = Convert.ToInt32(Encoding.ASCII.GetString(bs2)); // 155
// byte_Length = System.Text.Encoding.UTF8.GetBytes(SendLength.ToString()); //转成Byte
Byte[] byteTemp;
byteTemp = System.Text.Encoding.UTF8.GetBytes(SendLength.ToString());
for (int i = 0; i < byteTemp.Length; i++)
{
byte_Length[byteTemp.Length+i] = byteTemp[i];
}
int x = 12345; 或者 uint x = 12345;
var r = BitConverter.GetBytes(x);