我试图将字节数组发送到网络控件,我从windows机器从十六进制终端发送这些数据,它工作正常,得到了正确的响应,然后在Ubuntu上使用rails控制台
host = "192.168.1.100"
port = 10001
Socket.tcp(host , ip) do |sock| sock.puts([0x01,0x00,0x00,0x00,0x00,0x21,0x04,0x61,0x64,0x6D,0x69,0x6E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x64,0x6D,0x69,0x6E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC8]) end我得到了零作为回应,当我试着
Socket.tcp(host , ip) do |sock| sock.write([0x01,0x00,0x00,0x00,0x00,0x21,0x04,0x61,0x64,0x6D,0x69,0x6E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x64,0x6D,0x69,0x6E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC8]) end我得到141作为回应,但正确的回应是(00 01 00 0 0 01 FD 00 01 00 0 01 01 02 FB)
我不知道有什么问题,有人能帮我吗?提前谢谢。
发布于 2014-04-20 14:27:06
问题是在字节数组格式中,应该以字符串的形式发送这种格式的"\x01\x00\x00\x00\x00\x21\x04\x61\x64\x6D\x69\x6E\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x64\x6D\x69\x6E\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00“,然后使用response = socket.recv( 1000 )获得响应。
https://stackoverflow.com/questions/23040384
复制相似问题