良い一日、
困っています。ネットワーク経由でサーバーに文字配列を送信しようとしています。
これが私のコードです:
char[] arr= {3,4};
public void sendMessage(String message){
if (out != null && !out.checkError()) {
out.print(arr);
out.flush();
}
}
それを実行すると、lansharkは2バイトのデータを含むパケットを受信したことを検出します。大丈夫、すべてが順調です。
今私がこれを実行すると:
char[] arr= {3,160}; // notice 160 *****
public void sendMessage(String message){
if (out != null && !out.checkError()) {
out.print(arr);
out.flush();
}
}
lansharkは、パケットに3バイトのデータがあると言っていますか?正確なデータは次のとおりです。
03 c2 a0
では、なぜそこにc2を追加するのですか?私のcharが127より大きいという事実と関係があることを理解しています。しかし、この値160を送信する必要があります。
助けてくれますか。別の種類のデータを使用する必要がありますか、それとも別の方法で送信する必要がありますか?私はあなたがCでこれを行うことができることを知っています。どうすればJavaでそれを行うことができますか?
これが私のoutオブジェクトのコードです:
PrintWriter out;
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
ありがとう