3

これは私の動作しないスクリプトです (ハングするだけです...)

require 'socket'
server = TCPServer.new 2000

loop do
  Thread.start(server.accept) do |client|
    sock_domain, remote_port, remote_hostname, remote_ip = server.peeraddr
    client.puts "Hello !"
    client.puts "Time is #{Time.now}"
    puts "connection coming from #{remote_ip} and port #{remote_port}"
    client.close
  end
end

接続しているクライアント IP を出力したいのですが、接続が確立されても何も起こりません。

4

1 に答える 1

7

これを除いて、コードは問題ありません。

sock_domain, remote_port, remote_hostname, remote_ip = server.peeraddr

これである必要があります:

sock_domain, remote_port, remote_hostname, remote_ip = client.peeraddr
                                                       ^^^^^^
于 2012-12-12T19:33:36.200 に答える