Ruby でソケット通信

サーバ側でソケットを待ち受け、クライアント側から「Hello World!」を送信してサーバ側で表示するスクリプトを書く。

server.rb

require "socket"

gs = TCPServer.open(4444)

loop do
  Thread.start(gs.accept) do |s|
    while s.gets
      print $_
    end
    s.close
  end
end

TCPServer#accept は接続を待ち受けるメソッド。接続があるまで待機する。

client.rb

require "socket"

s = TCPSocket.open("localhost", 4444)

s.write("Hello World!\n\n")

s.close

サーバ側で開いているポート4444に接続し、Hello World!を送信したあと、接続を閉じる。