`
yonlist
  • 浏览: 85305 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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,搞定了

分享到:
评论

相关推荐

    java Socket与C#通信中中文乱码问题的解决方案

    总结起来,解决Java Socket与C#通信中中文乱码问题的关键在于: 1. **客户端**:确保使用`getBytes("UTF-8")`将字符串编码为UTF-8字节数组,然后通过Socket发送。 2. **服务器端**:在接收到数据后,使用`Encoding....

    基于Socket实现Android(java)与C#的同步通信.pdf

    本知识点将详细介绍如何通过Socket实现Android(java)与C#的同步通信,并分析在实现通信过程中所涉及的关键技术,如Socket通信技术、C#和Java的套接字编程以及Json序列化。 首先,Socket通信技术基于客户/服务器模式...

    c#调用Java webService的专题(一)

    本文将深入探讨如何使用C#调用Java WebService,这是实现.NET与Java平台间互操作性的一个重要方式。我们将首先理解WebService的基本概念,然后详细讲解C#中如何通过.NET Framework的SOAP客户端代理类来调用Java ...

    java调用c#写的dll

    这些方法的参数和返回类型需要与C# DLL中的对应函数匹配。例如: ```java public interface MyCLibrary extends Library { // 假设C# DLL中有方法 int Add(int a, int b); int Add(int a, int b); } ``` **步骤3...

    JAVA调用C++/C#的DLL

    在IT行业中,跨语言通信是一项常见的需求,尤其是在Java与C++或C#之间。标题"JAVA调用C++/C#的DLL"涉及到的技术点主要集中在Java Native Interface(JNI)上,这是一种允许Java代码与其他编程语言(如C++或C#)进行...

    Java访问c#开发的webservice

    ### Java访问C#开发的Webservice详解 #### 一、引言 在现代软件开发过程中,尤其是对于大型项目而言,采用分布式系统架构已经成为一种常态。分布式应用能够将复杂的业务逻辑分解并部署到不同的服务器上,从而提高...

    C#实现与欧姆龙PLC以太网通讯源码-Fins UDP

    5. **数据类型转换**:PLC中的数据通常以二进制形式存在,需要将这些数据转换为C#中的相应类型(如int、byte数组等),反之亦然。 6. **PLC编程概念**:了解欧姆龙PLC的编程模型和寄存器布局,例如,知道如何访问D...

    C#Java生成protobuf工具

    总的来说,"C#Java生成protobuf工具"是一个利用QT框架构建的实用软件,旨在简化C#和Java开发者使用protobuf的过程,帮助他们快速生成符合protobuf规范的代码,从而更高效地处理数据序列化和通信问题。通过这个工具,...

    Android与C#Tcp/Ip通信

    在IT行业中,Android和C#之间的TCP/IP通信是一项基础但重要的技术,特别是在构建跨平台应用时。本主题将深入探讨如何使Android客户端与C#服务器端实现高效且可靠的16进制数据传输。 首先,我们要了解TCP/IP协议。...

    protobuf java和c#生成

    **protobuf与Java和C#** 在Java和C#中使用protobuf,开发者首先需要编写.proto文件,这是一种定义数据结构的文本文件。.proto文件包含消息类型定义,类似于编程语言中的类。例如: ```protobuf syntax = "proto3";...

    C#Java生成protobuf工具_

    5. **跨语言通信**:由于protobuf有统一的规范,C#和Java生成的protobuf消息是兼容的,这使得跨平台、跨语言的数据交换成为可能。比如,C#服务端可以发送protobuf消息到Java客户端,反之亦然。 6. **...

    c与Java的UDP收发

    这些文件可能包含了服务器和客户端的实现,展示了如何在C和Java中设置UDP套接字,绑定端口,发送和接收数据,以及如何处理跨平台的通信问题。 **总结** 学习C和Java的UDP收发,需要掌握网络编程的基本概念,理解...

    C#引用ivkm的dll

    首先,IVKM(Inter-Virtual Machine Communication)是一种用于不同虚拟机之间通信的技术,它允许C#等.NET语言与Java虚拟机(JVM)进行交互。在C#中调用Java DLL,主要依赖于IVKM提供的接口,通过这些接口,我们可以...

    Unity与Java使用ProtoBuf通信的Demo__

    本Demo展示了如何在Unity中利用ProtoBuf与Java环境下的Netty服务器进行通信。 ProtoBuf是由Google开发的一种数据序列化协议,它能将结构化数据转化为二进制流,以减少网络传输的数据量,提高通信效率。Java和Unity...

    hessian java +c# 数据测试

    在IT行业中,跨平台通信是常见的需求,而Hessian作为一种二进制协议,因其轻量级、高效的特点,被广泛用于Java和C#等不同语言之间的远程调用(RPC)和数据交换。本文将深入探讨Hessian在Java服务端与C#客户端之间的...

    java程序调用.net/c#的webservice

    Java程序调用.NET/C#的Web服务是一种跨平台的交互方式,主要依赖于SOAP(Simple Object Access Protocol)协议,使得不同编程语言开发的应用程序能够相互通信。在本场景中,用户已经提供了一个.NET的Web服务,而我们...

    Java 调用 C# DLL

    3. **编译C代码**:将C代码编译成DLL或静态库,这个库将作为Java与C# DLL之间的桥梁。 4. **编写Java代码**:在Java中,使用`System.loadLibrary`加载刚才编译的C库,然后通过JNI调用C代码。 尽管JNA提供了更简单...

    C#基础教程C# C# C# C#

    1. **基本语法**:C#的语法结构与C++和Java相似,包括变量声明、数据类型(如int、string、bool等)、运算符、控制流(if-else、switch-case、for、while等)和函数定义。 2. **类与对象**:C#是一种面向对象的语言...

    Unity中C#和Java的相互调用实例代码

    C#脚本通过这些类与Android Java虚拟机(JVM)通信。具体步骤如下: 1. 引入AndroidJavaClass类:首先需要引用AndroidJavaClass类,该类提供了一种在C#代码中访问Java类的方式。 2. 获取当前Activity:通过...

    Unity3D 与 Java 基于 Protobuf 通信实现(客户端)

    总之,实现Unity3D与Java之间的Protobuf通信涉及客户端的C#编程、Protobuf的序列化和反序列化、Socket编程,以及服务器端的Java处理。通过这种方式,可以实现高效、可靠的跨平台数据交换,适用于大型在线游戏和其他...

Global site tag (gtag.js) - Google Analytics