0

私はソケットサーバーの作成に取り組んでいます。このサーバーは 16 進値で動作しています。

サーバーへの接続を確立できました。しかし、クライアントの 16 進値を読み取ることができず、クライアント側に 16 進値を入れることができません。

require "socket"


def listenserver (server)
 @buff1 =[160, 124]
 client = server.accept
 puts  "#{client.inspect} is accepted"
 client.print "0x%02x" % @buff1[0]
 client.print"0x%02x" % @buff1[1]
 puts "#{@buff1.inspect}"
 puts "0x%02x" % @buff1[0]
 client.close
 puts "#{client} is gone"
end

server = TCPServer.new('x.x.x.x', 12345)
loop do
 puts "Started TCPServer"
 listenserver(server)

end
4

1 に答える 1

0

あなたが探しているのはArray.packString.unpack です

Ruby ドキュメントのサンプル コード:

Array.packの場合:

a = [ "a", "b", "c" ]  
a.pack("A3A3A3")  
=> "a  b c "

およびSting.unpack :

"\xfe\xff\xfe\xff".unpack('sS')
=> [-2, 65534]

"whole".unpack('xax2aX2aX1aX2a')
=> ["h", "e", "l", "l", "o"]
于 2012-08-18T08:28:40.510 に答える