0

我正在尝试创建一个使用 TCPSocket 与 Minecraft 服务器通信并返回名称、当前玩家数量和最大玩家数量的 ruby​​ 脚本。到目前为止,我有以下代码

require 'socket'

class MinecraftServer
  def self.ping(ip, port = 25565)
    server = TCPSocket.new ip, port

    server.write "\xfe"

    response = []
    while line = server.gets
      response << line
    end

    server.close 

    response = response.join

    response
  end
end

puts MinecraftServer.ping('xxx.xxx.xxx.xxx')

这给了我类似的东西�A Minecraft Server�0�20。这给了我所有的信息,但是当我想要的是一个哈希时。如何摆脱奇数字符并将信息放入哈希中?

4

1 回答 1

0

这是一个 ruby​​ 代码的示例,它正是这样做的:

https://gist.github.com/4poc/6281388

它从此页面链接,描述了协议是什么:

http://wiki.vg/Server_List_Ping

于 2013-08-26T05:01:20.913 回答