2016-06-14 9 views
3

私はScalaで小さなMUDスタイルのゲームを書いています。私はユーザーがゲームにtelnetできるようにしたい(昔のように)。これは本当に単なるゲームです。それはプライベートネットワーク上で実行されます。セキュリティは(まだ)考慮されていません。Scalaの最も単純な行単位のサーバーソケットサーバーですか?

"プロトコル"は、ユーザーが送信したテキスト行(CRで終わる)で構成されています。サーバーは、ユーザーの入力の次の行を待つ前に、それ自身のテキスト行で応答します。実際には、これはREPLスタイルのテキストインターフェイスです。

私にネットワーキング用の便利なライブラリがありますか?私はそれがポートを開き、ユーザーがサービスに接続し、ゲームからのテキストの送受信を開始できるようにしたいだけです。

ThriftとHTTP向けの完全な機能を備えたサーバーライブラリ(TwitterServerなど)がたくさんあります。私は実際にははるかに単純なものの後です。私はちょうどテキスト行を受け取って、テキスト行で応答したい。

これを可能な限り簡単に達成する方法についてのアイデアはありますか?

+0

UPDATE:私はまた、超簡単なのWebSocketサーバの例がありますかどうかを確認するために興味があると思います。 :-) –

+1

この質問は一見価値があります:https://stackoverflow.com/questions/6414942/scala-equivalent-of-python-echo-server-client-example – Brian

答えて

5

ここに行く:

val acceptor = new ServerSocket(port) 
    while(true) { 
    val socket = acceptor.accept 
    Future { serve(socket.getInputStream, socket.getOutputStream) } onComplete { socket.close() } 
    } 
+0

Whartはこのコンテキストで「提供」していますか?私はそれが入力ストリームと出力ストリームを取る関数だが、それは何を返すのか、それとも何をするのだろうか? –

+0

これはサーバーの実装です。クライアントが 'InputStream'から送るものを読み込み、応答したいものを' OutputStream'に書き込みます。 – Dima

+0

(in:ストリーム、out:ストリーム)=> {do stuff} –

関連する問題