テストプログラム
ソケット通信系のプログラムを作るときって、必ずテストのときに対向のプログラムが必要になりますよね。こういうときにrubyだと、本当に簡単に作れちゃいます。
client.rb
require "socket" port = if ARGV.size > 0 then ARGV.shift else 4444 end print port, "\n" s = TCPSocket.open("localhost", port) while gets s.write($_) print(s.gets) end s.close
server.rb
require "socket" gs = TCPServer.open(0) addr = gs.addr addr.shift printf("server is on %s\n", addr.join(":")) while true Thread.start(gs.accept) do |s| # save to dynamic variable print(s, " is accepted\n") while s.gets s.write($_) end print(s, " is gone\n") s.close end end