socketchannel

    0热度

    2回答

    我有一个方法打开连接,查询站点,获取页数,然后使用NIO同时检索所有页面。第一个查询是使用URLConnection完成的,并且工作得很好。当我尝试使用NIO选择器和通道时,我遇到了两个问题: 1)如果我不从迭代器中移除密钥,则在运行时发生无限循环运行并打印size()并发送查询。如果我试图删除密钥,我得到一个UnsupportedOperationsException。呸! 2)在我写入套接字后

    2热度

    2回答

    我有一个服务器程序,需要关闭服务器关闭时保留的任何连接。我知道我需要拨打SocketChannel.close()。我的问题是,如果我还需要关闭与SocketChannel关联的套接字,或者SocketChannel.close()自动执行此操作。

    0热度

    1回答

    我正在编写一个连接到验证服务器的Android应用程序,以检索运行单独服务器程序的另一个Android设备的IP地址和端口。请求发送时,认证服务器发送正确的连接信息。问题是当客户端设备尝试连接到Android服务器时。客户端获取正确的信息并成功关闭以前的连接,但在尝试创建新连接时挂起。没有任何例外情况发生,但用户界面无响应,设备最终表示应用程序没有响应。我有一个充当客户端设备的模拟器和充当服务器的

    0热度

    1回答

    我一直在遇到这个问题一段时间了。系统的快速说明: 一个简单的应用程序将通过tcp连接读入数据。该应用程序使用Socketchannel对象来建立数据通信线路。到硬件的连接被建立,并且该应用程序的过程大致400之间 - 的分组700引发错误之前: at sun.nio.ch.SocketDispatcher.read0(Native Method) at sun.nio.ch.SocketDispa

    1热度

    3回答

    这不是我第一次试图了解这个问题,但我希望这将是最后一个: 一些背景: 我有一个Java SocketChannel NIO服务器工作在非阻塞模式下。 此服务器有多个客户端,它们发送和接收来自它的消息。 每个客户端每隔一段时间就会保持其与服务器的连接,并提供"keepalive"消息。 服务器的主要思想是客户端将始终保持“连接”状态,并以“推送”模式从它接收消息。 现在我的问题: 用Java NIO

    54热度

    3回答

    我想了解一般的SocketChannels和NIO。我知道如何使用常规套接字以及如何制作简单的每客户端服务器(使用常规阻塞套接字)。 所以我的问题: 什么是SocketChannel的? 当使用SocketChannel而不是Socket时,额外得到了什么。 通道和缓冲区之间的关系是什么? 什么是选择器? documentation中的第一个文件是A selectable channel for

    0热度

    1回答

    我正在开发一个android应用程序,它必须在运行时与多个基于TCP的服务器对话。现在我使用java套接字进行通信,并使用线程来处理多个客户端。但是在应用程序中有一个要求,我们需要在运行时与更多数量的服务器通信。所以我使用Java NIO和选择器一起处理多个服务器的概念。但现在我面临的问题是我无法与任何服务器通信。所以请任何人建议我可以在客户端使用选择器。

    0热度

    1回答

    我对客户端服务器和Java编程都比较陌生。有一个任务要做,我坚持用这个程序写一个回声客户端和服务器在Java中。我一直在这里找到我的答案,所以我再次求助于计算器。 这是服务器: public class Server_select { public static void main(String[] args) throws IOException { int port = 4666;

    0热度

    1回答

    我使用SocketChannel从客户端的服务器接收TCP流。例如: Selector selector=Selector.open(); SocketChannel mychannel=SocketChannel.open(new InetSocketAddress(ip,port)); channel.configureBlocking(false); SelectionKey chan

    0热度

    2回答

    我正在写一个服务器到客户端之间交换消息。还有一个问题需要解决,即如何在客户关闭时发布频道。我所做的就是启动监视器线程,其中监视所有客户端映射,并且如果在尝试写入()时检测到异常,我会尝试删除()通道。但是,在关闭客户端之后,monitor线程中的write()方法不会抛出异常,所以无用的通道永远不会被释放。任何人都知道为什么? public class ServerMonitor extends