2016-09-26 1 views
0

現在、サーバーにStringを送信していて、サーバー側のバッファーを反復処理するときにASCCII文字を取得しています。どのように文字列をサーバー上で16進数で受け取るために送ることができますか?サーバ上でデータを16進数で受信していますか?

コード

String message; 
String result; 
String aString = "#2016011400000060.00#010104#004500##"; 
// String aString = "###"; 
BufferedReader inFromUser = new BufferedReader(new StringReader(aString)); 

Socket clientSocket = new Socket("localhost", 1000); 
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream()); 
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); 
message = inFromUser.readLine(); 
outToServer.writeBytes(message + '\n'); 
result = inFromServer.readLine(); 
System.out.println(result); 
clientSocket.close(); 
+1

あなたが送信したものになっています。あなたが何を求めているのか不明です。 – EJP

+0

どうやってサーバーでそれを読んでいるのですか?プレーンバイトの代わりに生のソケットで16進数を期待するのはなぜですか? – Andreas

答えて

1

可能な重複:

Converting A String To Hexadecimal In Java

public String toHex(String arg) { 
    return String.format("%040x", new BigInteger(1, arg.getBytes(/*YOUR_CHARSET?*/))); 
} 
+0

しかし、writeHexa()メソッドがないので、ソケットと一緒にどのように送ることができますか? – TheBook

+0

@TheBook 'writeBytes(toHex(message + '\ n')));' – Andreas

+0

@TheBookそれはJavaにHEXデータ型がないからです。あなたがしようとしていることは不明です。 – Titus

関連する問題