2011-01-11 6 views
2

TCPServer.new(port)は、ローカルホストまたはリモートマシンからの要求を処理できるサーバーを作成します。RubyのGServerはローカルホストのみで作業したい

しかし、Ghost.new(port)は、localhostからの要求のみを処理できるサーバーを作成します。

GServerのソースを見ると、TCPServer.new(@ host、@ port)が呼び出されます。 @hostのデフォルト値はDEFAULT_HOSTで、127.0.0.1です。

TCPServer.newのソースは言う:

# TCPServer.new([hostname,] port) => tcpserver 
# Creates a new server socket bound to _port_. 
# If _hostname_ is given, the socket is bound to it. 

私はGServerを使用しますが、特定のホスト名にバインドしないようにしたいと思います。そんなことは可能ですか?ウェブ上のすべての例は、localhostのみを使用しています。

GServerにホストが指定されていない場合、GServerはTCPServerへのホストを指定しないように見えます。

+0

この質問をお寄せいただきありがとうございます - 私は同じ問題に遭遇しました。 DEFAULT_HOSTを0.0.0.0に上書きする方法はありますか(つまり、GServerを呼び出すコードを変更せずに変更を加えること)? – jimbojw

答えて

3

ホスト名にはすべてのインターフェイスにバインドするために0.0.0.0を使用してください。

+0

ありがとうございました!私はこれがどこにでも書かれているのを見ませんでした。 – Fantius

+1

うれしかったです。これはドキュメントに含まれていないかもしれませんが、0.0.0.0へのバインディングはこれを行う典型的な方法です( 'netstat'または同様のツールを使用してコンピュータでリッスンしているサービスを見るとほとんどのサービスがバインドされる方法です)。 – cam

関連する問題