2011-11-20 55 views
0

这听起来很奇怪。我创建了一个基于每个套接字结构的线程的游戏服务器(是的,每个用户只有一个线程;响应由工作线程发送给客户端)。我生成的线程首先对用户进行身份验证并处理登录,之后它只接收数据并将其排队等待处理。认证部分非常关键,需要很长时间才能实现,并且需要很长时间才能再次实现,因此我认为在认证完成后,我可以将我拥有的阻塞套接字转换为SocketChannel的套接字,以便Selector可以以非阻塞的方式处理其消息?将阻塞的Socket对象转换为SocketChannel的套接字?

回答

2

你不能。你必须从SocketChannel开始,然后你可以在阻塞模式下使用socket(),或者在阻塞模式或非阻塞模式下使用通道本身。