- socketをrequireする
- TCPServer.open{}でサーバーオブジェクトを生成してブロックに渡す
- 複数のclientからのリクエストに答えられるようLoopでオブジェクトが死なないようにする
- Thread.start(server_obj.accept){}でclientからのリクエストがある毎にスレッドを立てる
- clientからのリクエストの処理後はそのソケットをcloseする
- クライアント側ではTCPSocket.open{}でサーバーへのソケットを開く
server.rb
#!/usr/bin/env ruby
# encoding: utf-8
require "socket"
TCPServer.open "127.0.0.1", 7430 do |server|
loop do
Thread.start(server.accept) do |socket|
begin
socket.write "hello from #{socket}"
ensure
socket.close
end
end
end
end
client.rb
#!/usr/bin/env ruby
# encoding: utf-8
require "socket"
TCPSocket.open("127.0.0.1", 7430) do |soc|
soc.write "hello"
puts soc.read
end
No comments:
Post a Comment