关于JAVA非阻塞SOCKET服务器写一个对战游戏服务器的实例。 150
我想写一个游戏服务器,之前采用的是阻塞方式的SOCKET。我也知道阻塞方式不佳,想改写成为一个非阻塞方式的。但是,我不知道该如何用非阻塞方式来保存已建立的SOCKET连接...
我想写一个游戏服务器,之前采用的是阻塞方式的SOCKET。我也知道阻塞方式不佳,想改写成为一个非阻塞方式的。但是,我不知道该如何用非阻塞方式来保存已建立的SOCKET连接。例如我要向某个特定的SOCKET写入数据,不知道这个SOCKET要怎么存,怎么取。请指教。100分
展开
1个回答
展开全部
直接用数组或者集合来保存。
服务端socket在线程中等待连接,一旦获取到连接就保存返回的socket句柄,启动一个新的线程来从socket中读取消息。
服务端socket在线程中等待连接,一旦获取到连接就保存返回的socket句柄,启动一个新的线程来从socket中读取消息。
追问
以前阻塞方式我会存,但是非阻塞方式不会。请问是一样的吗?
追答
非阻塞的方式也是差不多的,不过保存的是Selector的对象,为SocketChannel注册Selector。
然后再线程中获取返回的SelectionKey,中key中可以获取到数据流进行读写。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询