|
|
|
@ -0,0 +1,70 @@
|
|
|
|
|
package UnitTest;
|
|
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import java.io.InputStream;
|
|
|
|
|
import java.io.OutputStream;
|
|
|
|
|
import java.net.Socket;
|
|
|
|
|
|
|
|
|
|
public class HexStringSender {
|
|
|
|
|
public static String IP = "10.10.21.18";
|
|
|
|
|
public static int PORT = 8001;
|
|
|
|
|
|
|
|
|
|
//# 开
|
|
|
|
|
public static String open_hex_str = "16 00 34 F5 41 11 FE 82 0D 02 6D FF 00 00 00 00 00 00 01 00 00 01";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//关
|
|
|
|
|
public static String close_hex_str = "16 00 34 F5 41 11 FE 82 0D 02 6D FF 00 00 00 00 00 00 01 00 00 00";
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) throws IOException, InterruptedException {
|
|
|
|
|
|
|
|
|
|
for (int i = 1; ; i++) {
|
|
|
|
|
Socket socket = new Socket(IP, PORT);
|
|
|
|
|
String hex_str;
|
|
|
|
|
if (i % 2 == 0) hex_str = close_hex_str;
|
|
|
|
|
else hex_str = open_hex_str;
|
|
|
|
|
byte[] bytes = hexStringToByteArray(hex_str);
|
|
|
|
|
OutputStream os = socket.getOutputStream();
|
|
|
|
|
os.write(bytes);
|
|
|
|
|
socket.close();
|
|
|
|
|
|
|
|
|
|
Thread.sleep(2000);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 16进制表示的字符串转换为字节数组
|
|
|
|
|
*
|
|
|
|
|
* @param hexString 16进制表示的字符串
|
|
|
|
|
* @return byte[] 字节数组
|
|
|
|
|
*/
|
|
|
|
|
public static byte[] hexStringToByteArray(String hexString) {
|
|
|
|
|
hexString = hexString.replaceAll(" ", "");
|
|
|
|
|
int len = hexString.length();
|
|
|
|
|
byte[] bytes = new byte[len / 2];
|
|
|
|
|
for (int i = 0; i < len; i += 2) {
|
|
|
|
|
// 两位一组,表示一个字节,把这样表示的16进制字符串,还原成一个字节
|
|
|
|
|
bytes[i / 2] = (byte) ((Character.digit(hexString.charAt(i), 16) << 4) + Character
|
|
|
|
|
.digit(hexString.charAt(i + 1), 16));
|
|
|
|
|
}
|
|
|
|
|
return bytes;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 将字节数组转换成十六进制的字符串
|
|
|
|
|
*
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public static String BinaryToHexString(byte[] bytes) {
|
|
|
|
|
String hexStr = "0123456789ABCDEF";
|
|
|
|
|
String result = "";
|
|
|
|
|
String hex = "";
|
|
|
|
|
for (byte b : bytes) {
|
|
|
|
|
hex = String.valueOf(hexStr.charAt((b & 0xF0) >> 4));
|
|
|
|
|
hex += String.valueOf(hexStr.charAt(b & 0x0F));
|
|
|
|
|
result += hex + " ";
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
}
|