通过java中的套接字将数据发送到rs232/usb适配器
我想发送这个十六进制命令块:通过java中的套接字将数据发送到rs232/usb适配器,java,sockets,proxy,serial-port,Java,Sockets,Proxy,Serial Port,我想发送这个十六进制命令块: 1B 40 26 0D 通过java套接字和代理(serproxy)连接到带有RS232的机器。我有以下代码: DataOutputStream outToServer = new DataOutputStream(this.clientsocket.getOutputStream()); String command5 = "\u001b\u0040\u0026\u240D"; outToServer.writeUTF(command5); outToServ
1B 40 26 0D
通过java套接字和代理(serproxy)连接到带有RS232的机器。我有以下代码:
DataOutputStream outToServer = new DataOutputStream(this.clientsocket.getOutputStream());
String command5 = "\u001b\u0040\u0026\u240D";
outToServer.writeUTF(command5);
outToServer.flush();
套接字和serproxy配置正确。有人有想法吗?函数将字符串的长度写在字符之前。您可以使用的是普通书写:
byte[] bytes = {0x1B, 0x40, ...};
out.write(bytes)
我得到一个带有0xa6的erro(类型不匹配:无法从int转换为byte)。我不必使用\u00语法吗?0xA6必须转换为字节,
(byte)0xA6
,因为它超出了范围(原因是在Java中字节是有符号的)。\uABCD
-这件事只是为了让您能够在源代码中编写Unicode字符,而不用担心编译器把它弄糟;现在没有用。谢谢你的回复。代码现在似乎运行良好。我用SerialMon检查了输出。我的这个rs232控制器的问题似乎不同。它不回答,宁愿什么也不做。我需要用直接连接的Arduino进行检查。谢谢你初始化clientsocket了吗?