C#与Java通信中的Int问题

最近在写C#客户端发送int值给Java服务端的时候出现了问题。
搞了半天终于解决了。

问题原因在于字节数组顺序上。

在C#中一般会使用BitConverter.getBytes(i)方法获取字节数组。
现在我们自己处理下:

        // 转换为Java格式的字节数组
        static byte[] int2bytes(int n)
        {
            byte[] result = new byte[4];
            result[0] = (byte)((n & 0xFF000000) >> 24);
            result[1] = (byte)((n & 0x00FF0000) >> 16);
            result[2] = (byte)((n & 0x0000FF00) >> 8);
            result[3] = (byte)((n & 0x000000FF));
            return result;
        }

 

调用:

        // socket发送int值
        public void Send(int i)
        {
            client.Send(int2bytes(i));
        }

 

OK,搞定了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值