0

Android アプリと通信する C# で記述されたデスクトップ アプリケーションがあります。tcp/ip 接続を介してそれらの間でデータを渡す最も簡単な方法は何ですか? 私はパフォーマンスにはあまり関心がなく、実装の容易さに関心があります。

4

1 に答える 1

2

私は当然、あなたのことを の意味で理解していませんease of implementation。しかし、私が推測したように、これらが必要なはずです:

In [C#]:

//util function
public static void WriteBuffer(BinaryWriter os, byte[] array) {
            if ((array!=null) && (array.Length > 0) && (array.Length < MAX_BUFFER_SIZE)) {
                WriteInt(os,array.Length);
                os.Write(array);
            } else {
                WriteEmptyBuffer(os);
            }
        }

//write a string
public static void WriteString(BinaryWriter os, string value)  {
            if (value!=null) {
                byte[] array = System.Text.Encoding.Unicode.GetBytes(value);
                WriteBuffer(os,array);
            } else {
                WriteEmptyBuffer(os);
            }
        }

In [Java] Android:

/** Read a String from the wire.  Strings are represented by
 a length first, then a sequence of Unicode bytes. */
public static String ReadString(DataInputStream input_stream) throws IOException  
{
    String ret = null;
    int len = ReadInt(input_stream);
    if ((len == 0) || (len > MAX_BUFFER_SIZE)) {
        ret = "";
    } else {
        byte[] buffer = new byte[len];
        input_stream.readFully(buffer);
        ret = new String(buffer, DATA_CHARSET);
    }
    return (ret);
}   

さらなる構造データについては、たとえば C# と Java の間でオブジェクトを送信したい場合は、 and を使用XML Serialization in C#してくださいXML Parser in Java。これらはインターネットで検索できます。多くの例がCode ProjectのWeb サイトにあります。

Android 部分では、使いやすさのためにXStreamライブラリを使用できます。

于 2012-10-31T07:00:35.840 に答える