通过ruby套接字向客户端发送十六进制值
我正在创建一个套接字服务器。此服务器正在处理十六进制值 我能够建立到服务器的连接。但不能读取客户端十六进制值,也不能将十六进制值放入客户端通过ruby套接字向客户端发送十六进制值,ruby,sockets,hex,Ruby,Sockets,Hex,我正在创建一个套接字服务器。此服务器正在处理十六进制值 我能够建立到服务器的连接。但不能读取客户端十六进制值,也不能将十六进制值放入客户端 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%
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
你要找的是和 Ruby文档中的示例代码: 对于阵列。打包:
a = [ "a", "b", "c" ]
a.pack("A3A3A3")
=> "a b c "
"\xfe\xff\xfe\xff".unpack('sS')
=> [-2, 65534]
"whole".unpack('xax2aX2aX1aX2a')
=> ["h", "e", "l", "l", "o"]
和刺痛。打开包装:
a = [ "a", "b", "c" ]
a.pack("A3A3A3")
=> "a b c "
"\xfe\xff\xfe\xff".unpack('sS')
=> [-2, 65534]
"whole".unpack('xax2aX2aX1aX2a')
=> ["h", "e", "l", "l", "o"]
请添加数组@buff和一个用于测试服务器是私有的示例url,但主要的一点是当我们打印十六进制值时,它以字符串的形式到达客户端。我已经更新了buff1 Arry,请看一下