应该是网络字节流序的问题,C#提供了一个System.Net.IPAddress.NetworkToHostOrder()方法实现网络到本地直接流序的转变(只有数值型的才需要1转变)比如接受到数据为bytes[] buffer int i = BitConverter.ToUInt32(buffer, 0);//表示从buffer[0]位置开始读取4个字节然后转为int,但现在得到的并不是你想要的真实值(他的字节序是倒转了的)。要得到正确的结果可以这样 i = System.Net.IPAddress.NetworkToHostOrder(i);而要把本地的数字转为网络传输需要调用 int a = 10 a = System.Net.IPAddress.HostworkToNetOrder(a); bytes[] buffer = System.Text.Encoding.GetBytes(a);
int i = BitConverter.ToUInt32(buffer, 0);//表示从buffer[0]位置开始读取4个字节然后转为int,但现在得到的并不是你想要的真实值(他的字节序是倒转了的)。要得到正确的结果可以这样
i = System.Net.IPAddress.NetworkToHostOrder(i);而要把本地的数字转为网络传输需要调用
int a = 10
a = System.Net.IPAddress.HostworkToNetOrder(a);
bytes[] buffer = System.Text.Encoding.GetBytes(a);