2

Rubys TCPSocket-Class を使って raw バイトを送信したい。誰かが良い例を持っていますか?

この方法で試してみましたが、うまくいきません:(

require 'socket'

host = '192.168.0.80'
port = 102
s = TCPSocket.new(host, port)

    s.write [0x03, 0x00, 0x00, 0x16,
             0x11, 0xE0, 0x00, 0x00, 0x00, 
             0x01, 0x00, 0xC1, 0x02, 0x02, 
             0x02, 0xC2, 0x02, 0x02, 0x02, 
             0xC0, 0x01, 0x0A ].pack('C')
    puts s.read
    s.close

puts "exit"

ありがとう :)

4

1 に答える 1

8

リスト内のすべての要素を食べるために、フォーマット ディレクティブの後に「*」を使用してみてください。

s.write [0x03, 0x00, 0x00, 0x16,
         0x11, 0xE0, 0x00, 0x00, 0x00, 
         0x01, 0x00, 0xC1, 0x02, 0x02, 
         0x02, 0xC2, 0x02, 0x02, 0x02, 
         0xC0, 0x01, 0x0A ].pack('C*')

string#format を使用した巧妙なトリックがたくさんあるので、ドキュメントを調べる価値があります。

于 2012-02-17T11:59:48.317 に答える