Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将阻塞套接字对象转换为SocketChannel';s插座?_Java_Sockets_Selector_Nio_Socketchannel - Fatal编程技术网

Java 将阻塞套接字对象转换为SocketChannel';s插座?

Java 将阻塞套接字对象转换为SocketChannel';s插座?,java,sockets,selector,nio,socketchannel,Java,Sockets,Selector,Nio,Socketchannel,这听起来可能很奇怪。我已经创建了一个基于每个套接字线程结构的游戏服务器(是的,每个用户只有一个线程;响应由工作线程发送到客户端)。我生成的线程首先对用户进行身份验证并处理登录,然后它只接收数据并将其排队等待处理。身份验证部分非常关键,需要很长时间才能实现,再次实现也需要很长时间,因此我在想,在身份验证完成后,我可以将我拥有的阻塞套接字转换为SocketCannel的套接字,以便选择器可以以非阻塞方式处理其消息吗?您不能。您必须从一个SocketChannel开始,然后您可以在阻塞模式下使用该通道

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

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

如果使用socket.getChannel()?