ログイン
編集不可のページディスカッション情報添付ファイル

2012-08-23 19:39:31時点のリビジョン1

メッセージを消す
iz/MMA2012 Summer Hackathon/WEBrick::GenericServerの動作

MMA

WEBrick::GenericServerの動作

リファレンスには使い方ほとんど乗ってないので使い方の説明。 ただし僕もリファレンス読んで多少使ってソースの関係有そうなところ見た程度なので大した内容はかけないし正確じゃないかもしれない。あしからず。

1. とりあえずWEBrick::GenericServerを継承したクラスを作る。走らせるのはこのクラスのインスタンス。

2. WEBrick::GenericServerを継承して作ったクラスにrunメソッドを定義する。runメソッドはTCPSocketを引数にとる。

こんな感じ。

class Server < WEBrick::GenericServer

end

あとはServer.newして返ってきたインスタンスのstartインスタンスメソッド呼ぶだけ。 WEBrick::GenericServerのイニシャライザはHashを引数にとる。これの:Port要素にポート番号を指定しないと動かないので注意。

実際に接続した時のWEBrick::GenericServerのサブクラスは以下のように動作する

クライアントA(仮)が接続 ー> Threadを作成 ー> 作成したThreadでrunが呼ばれる。runに与える引数はAと通信するTCPSocket

頑張ればチャットサーバーとして使えなくもないサーバー

使うにはtelnetで6667番ポートに接続する。ちなみに6667番ポートはIRCがよく使うポート。

require 'webrick/server'

class Server < WEBrick::GenericServer

end

Server.new.start