文字列「IP:PORT」をバイト配列に変換するメソッドが必要です。手動でフォーマットする方法は知っていますが、自動的にフォーマットする方法が必要です。
IP の例:
77.125.65.201:8099
"".getBytes(); を使用できません。次の形式が必要なため(ドットとコロンなし):
[#1 オクテット ip] [#2 オクテット ip] [#3 オクテット ip] [#4 オクテット ip] [#1 2 オクテット ポート]
理解を深めるために:
77 125 65 201 8099
Javaで手動で設定できます:
byte[] testIP = { 0x4D, 0x7D, 0x41, (byte)0xC9, (byte)0x1FA3 };
バイト配列を正しい形式で返し、必要に応じてバイトにキャストするメソッドを見つける必要があります (Java 符号付きバイトのため)。
これは私が作ったものですが、うまくいきません:
private void parseIp(String fullData){
String[] data = fullData.split(":"); // 8099
String[] ip = data[0].split("\\."); // 77 | 125 | 65 | 201
for(int i = 0; i < 4; i++){
System.out.println("---> " + toHex(ip[i]));
}
}
private String toHex(String data){
return Integer.toHexString(Integer.parseInt(data, 16));
}