0

私はcでサーバープログラムを書いています.クライアントはJava言語を使用するAndroidプラットフォーム上にあります.今、サーバーからクライアントにchar配列を送信するのに問題があります。つまり、クライアントはデータを取得できますが、デコードできません.それはおそらく、データ型の問題またはエンコードの違いによるものだと思います。誰かアイデアを教えてください。どうもありがとう!

サーバー側の私のコードは次のとおりです。

char buf[MAXSIZE];
memset(buf, 0, MAXSIZE);
int n_write;

strcpy(buf, "0008200050005001");

n_write = Write(confd, buf, strlen(buf));

if (n_write <= 0)
{
    fputs("Write error in send_matrix_and_position\n", stderr);
    close(confd);
    return -1;
}

そして、ここにJavaコードがあります:

mSocket = new Socket(HOST, PORT);
mIn = mSocket.getInputStream();
mOut = mSocket.getOutputStream();
byte[] lengthByte = new byte[4];
mIn.read(lengthByte);
for(byte b : lengthByte)
{
System.out.println(b + "");
}
4

2 に答える 2

1

16 文字を送信していますが、4 文字しか読み取れません。データ 48 48 48 56 を取得していませんか? これらは、送信された最初の 4 文字のコードです。

于 2014-06-03T12:50:46.093 に答える
0

char配列を読み取るときにクライアントで取得する値を確認してみてください。おそらく、br.readline()を実行している可能性があります。これが文字を印刷するかどうかを確認しますか?デバッグして確認する必要があります。そうすれば、何らかの方法を思い付く可能性があります。

于 2013-03-01T03:36:29.563 に答える