4

ソケットを介して Android デバイスから node.js サーバーに文字列を送信したいと考えています。接続はすでに機能していますが、文字列を送信するたびに、サーバーは追加の文字を受信します。

これは、文字列「hans」を node.js サーバーに送信したときに受け取るものです。

Buffer ac ed
Buffer 00 05 77 04 68 61 6e 73

utf8 文字列として:

??
♣w♦hans

文字列を送信する Java 部分は次のとおりです。

clientSocket = new Socket("xxx.xxx.xxx.xxx",9988);
ObjectOutputStream clientOut = new ObjectOutputStream(clientSocket.getOutputStream());              

String sendString = "hans";             
clientOut.write(sendString.getBytes());
clientOut.flush();

では、なぜこれが起こるのですか?

4

1 に答える 1

6

シリアル化されたオブジェクトを送信するために使用される を使用しており、相手側でObjectOutputStreamによってデコードする必要があります。ObjectInputStreamバイトを送信し、相手側でバイトを読み取るだけの場合は、 と を使用する必要がありOutputStreamますInputStream

于 2013-04-13T10:06:18.833 に答える