请教方式一可以在项目中使用,会出意外吗?
请教为什么两种方式都可以,但网上都要用GetBytes转为byte后发送?
方式一,直接对byte赋值,通过socket发送,可以正确收到16
byte a = 0x10;//a被转换为16
方式二,通过转换,也能正确收到16
byte[] b = System.Text.ASCIIEncoding.ASCII.GetBytes("16");//
其实一样啊,等价的
但是第二种写法,你可以把"16"换成变量,比如textbox.text,这样更灵活
byte a = 0x10;
byte[] b = System.Text.ASCIIEncoding.ASCII.GetBytes("16");
b[0] = 0x31;
b[1] = 0x36;
你收到的东西不一样啊,第一个你发送了一个字节 a= 0x10,第二个你发送了两个字节 b[0] = 0x31 b[1] = 0x36
你把你要发送的对象放到字节数组中这叫做序列化,当你收到字节流转换成你需要的对象叫做反序列化,如果你用同一个反序列化方法去解析这两种收到的字节流,解析结果肯定是不一样的。
谢谢,楼上说的有道理,我主要是担心方式一也可以转换,没有搞明白原理,怕出意外