2016-06-14 78 views
3

我正在Scala写一个小型MUD风格的游戏。我想让用户能够远程登录游戏(就像过去一样)。这真的只是一场比赛。它将在私人网络上运行。安全性尚未(考虑)。Scala中最简单的一行一行的服务器套接字服务器?

“协议”由用户发送的文本行(以CR结尾)组成。在等待下一行用户输入之前,服务器将用它自己的文本行进行回复。实际上,这是一个REPL样式的文本界面。

有没有一个方便的图书馆,将为我做网络的东西?我只是想让它打开一个端口,并允许用户连接到服务,并开始发送和接收来自游戏的文本。

有很多全功能的服务器库(例如TwitterServer),它们似乎适用于Thrift和HTTP。我实际上是在更简单的事情之后。我只想接收文本行,并用文本行回应。

有关我如何能够以最简单的方式达到此目的的任何想法?

+0

更新:我也很想看看是否有一个超级简单的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:Stream,out:Stream)=> {do stuff} –