我需要将客户端 - 服务器应用程序作为我的大学决赛项目提交。
我已经弄清楚我将如何编写服务器但我对这种情况感到困惑。
因此,据说服务器仅支持一个已定义的协议(由Protocol
接口表示),并且仅为使用该规则说话的客户端提供服务。为了测试服务器的功能,我编写了一个支持HTTP协议的实现,以便我可以从浏览器快速测试服务器,但有一件事让我感到困惑。
我已将服务器定义为:
public interface Server {
// Methods...
public void start() throws Exception;
public Protocol getProtocol();
}
服务器的基本实现执行此操作:
public class StandardServer implements Server {
/* Implementations */
public synchronized final void start() throws Exception {
try {
while (true) {
Socket socket = serverSocket.accept();
// Use the protocol to handle the request
getProtocol().handshake(socket);
}
} catch (IOException ex) {
logger.error(ex);
}
}
}
我很困惑,这是真的需要这样做,因为我确信有更好的方法来做到这一点。
到目前为止我所考虑的是:
getProtocol()
方法。Protocol
一个线程,然后用它来处理请求。考虑到服务器每秒会获得相当数量的请求,这样做的好方法是什么?
任何源代码帮助/参考都将受到高度赞赏。
Server