Rails TCP套接字

赫舍姆·卡南尼

我正在尝试将字节数组发送到网络控制,我从Windows计算机的十六进制终端发送了此数据,并且它工作正常,并且我得到了正确的响应,然后在Ubuntu上使用rails console我尝试了

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 00 01 00 00 01 01 FD 00 00 01 00 01 01 02 FB)

我不知道有什么问题,有人可以帮助我吗?提前致谢。

赫舍姆·卡南尼

问题出在字节数组格式中,应该以以下格式作为字符串发送:“ \ 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 \ x00“,然后得到使用response = socket.recv(1000)的响应

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章