2017-05-25 2 views
1

私はCから送信した文字列をJavaの文字列値として変換したいと思います。ここでCから受信した文字列をJavaの文字列に変換する

は、Javaで文字列を受け取るためにC.

strcpy(buffer,"hello"); 
send(clientSocket,buffer,4096,0); 

そして、私のコード内の文字列を送信するための私のコードです。

BufferedReader in = new BufferedReader(new InputStreamReader(LoginActivity.getSocket().getInputStream())); 
String str = in.readLine(); 

しかし、トーストをすると、strの値が奇妙な記号で表示されます。どのように私はこれを解決するのですか?

+0

'(clientSocket、バッファ、4096,0)を送信してテキストを作成するために使用しました+1,0); ' – LPs

+2

プラス '\ n'。そして、両方の側にcharsetエンコーディングがあります。 –

+0

@JoopEggenだから、 "こんにちは\ n"ですか? – Learning2code

答えて

2

あなたは、あなただけの文字列ではなく、全体のバッファを送るこのように

send(clientSocket,buffer,strlen(buffer)+1,0); 

send(clientSocket,buffer,4096,0); 

を変更する必要があります。

また私が送信された文字列ではありません改行文字のために期待し

in.readLine() 

ハングと思います。 `--->`送る(clientSocket、バッファ、strlenを(バッファ);

+1

また、代わりにStreamReaderを使用して複数バイト文字を処理します。 –

+0

hmm .. "in.readline()"をどのように変更する必要がありますか? – Learning2code

+0

@ Learning2code簡単な修正:文字列の最後に '\ n'を追加 – LPs

0

あなたはInputStreamReader(InputStream in, String charsetName)コンストラクタバージョンを使用してたcharsetNameを渡す必要はC

関連する問題