服务器端肯定要用多线程,有两种思路:
1.为每个客户端分配一个线程 书上说这样资源消耗比较大,但我认为QQ这种东西是长时间的连接,不会频繁的开启关闭线程,我认为QQ用这种思路还是可以的
2.创建一个线程池,用线程池管理客户端线程.但是我认为这种方式不适合长时间的连接,如果给定线程池中固定的线程数,那么有新客户端连接上来那不就要等待了??请各位说下适合那种思路.
1.为每个客户端分配一个线程 书上说这样资源消耗比较大,但我认为QQ这种东西是长时间的连接,不会频繁的开启关闭线程,我认为QQ用这种思路还是可以的
2.创建一个线程池,用线程池管理客户端线程.但是我认为这种方式不适合长时间的连接,如果给定线程池中固定的线程数,那么有新客户端连接上来那不就要等待了??请各位说下适合那种思路.
高手在哪
1个线程用NIO接收客户连接数据等,然后为每个客户建一线程处理逻辑。这个线程用线程池,以免频繁创建/关闭/切换线程带来的效率问题。
zhaobo80968096 :你的意思是说一个客户端向另一个客户端发送消息完后Socket就关闭??如果再要发消息就再连Socket??如果要这样那就用UDP会更好。