我正在尝试构建一个具有TCP连接的多线程服务器,它可以与多个客户端通信并同时传输一些数据。我正在使用Java,Java IO和Java Thread库。我相信我的实现应该构建为“每个请求的线程”模型。任何想法我可以在哪里开始或你可以指导我的教程?
答案 0 :(得分:1)
随着多线程代码的出现,每个请求模型的线程编写起来非常简单。基本上你需要的是:
线程池
服务器套接字
调度工作线程的主线程
设置服务器套接字以侦听请求。让主线程运行一个循环。循环等待请求进入,然后从线程池中获取一个线程来为请求提供服务。
答案 1 :(得分:0)
如果您想编写高效的服务器。使用NIO。每个客户一个线程是旧的方式。它的内存/ CPU密集。
见这个。这是一个很好的起点。 http://rox-xmlrpc.sourceforge.net/niotut/
一旦你理解了NIO并以这种方式实现你的服务器,你会很高兴你实现它。在过去,我将每个客户端模型的一个线程转换为NIO,性能提升非常巨大。