【问题标题】:Rails TCP SocketRails TCP 套接字
【发布时间】:2014-05-27 05:59:26
【问题描述】:

我正在尝试将字节数组发送到网络控制, 我从 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

我得到 nil 作为响应,当我尝试时

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)

不知道是什么问题,谁能帮帮我? 提前致谢。

【问题讨论】:

    标签: ruby-on-rails ruby sockets tcp tcpclient


    【解决方案1】:

    问题出在字节数组格式中,它应该以这种格式作为字符串发送 "\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" 然后使用 响应 = socket.recv( 1000 )

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-31
      • 2023-03-21
      • 2012-08-23
      • 2011-01-26
      • 2013-05-25
      • 2019-07-11
      • 2015-12-14
      相关资源
      最近更新 更多