socketchannel

    1热度

    1回答

    我已经越来越获得java.nio.channels.CancelledKeyException从抛出明确的取消: at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) 但是

    0热度

    1回答

    我看了一些开源java网络库(jdbc驱动程序,apache commons net等),我还没有找到一个库,使用SocketChannel以外的其他简单用例(V3的MySQL的jdbc连接器使用socketchannel但更新的版本使用jn.Socket)。 我只对客户端代码库感兴趣。 (连接的库,不听)。我正在为Java套接字(仅客户端)实现一个抽象层,我需要一些用例来使SocketChann

    1热度

    1回答

    我有一个小型服务器应用程序,它接收来自多个客户端的连接。 客户端将连接,发送消息并断开连接,没有响应发回。 我正在使用ServerSocketChannel来侦听连接。 我开始使用一个选择通知新的连接,当发生这种情况我注册的SocketChannel与选择的SelectionKey.OP_READ 我不确定的部分是,当我得到通知的数据可用于阅读。 我的SocketChannel处于非阻塞模式。 我

    0热度

    2回答

    Java代码: import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.SocketChannel; public class Test { public static void main(Strin

    3热度

    1回答

    我已经构建了一个可以接受多个客户端的基于Selector的系统。它有一个在OP_ACCEPT下注册的ServerSocketChannel,它接受()传入的连接,并再次向选择器注册生成的SocketChannel。这是位: ServerSocketChannel insock = ServerSocketChannel.open(); insock.configureBlocking(f

    0热度

    1回答

    当用户单击“连接”按钮时,我的SwingWorker的doInBackground()创建(并向OP_ACCEPT注册)新的ServerSocketChannel。 当客户端isAcceptable(),SwingWorker注册SocketChannel与OP_READ。 当用户单击“断开”按钮时,SwingWorker关闭()ServerSocketChannel和selector()。然而,

    2热度

    3回答

    我需要从一个套接字传入数据到一个ByteBuffer,我不知道该怎么做。我是这个领域的新手,因此不确定开始的最佳方式。我发现了以下内容,但这不是我想要的,因为它获取了数据,但我需要将所有数据放在bytebuffer中用于其他目的。 ServerSocket welcomeSocket = new ServerSocket(Integer.parseInt(ibmPort)); while (tr

    0热度

    1回答

    我自己使用java nio和选择器创建了一个服务器。如果需要,我可以直接从客户那里收到数据和答案。 但是现在我想要一个线程来处理数据,并且每次它都会向每个客户端发送数据。 那么我该怎么做呢?还有如何在内存中保存所有通道以将数据写入每个客户端? 如果你需要我可以用java nio发布我的代码的一部分。

    1热度

    1回答

    对于NIO来说,我非常陌生,正在构建一个聊天应用程序我在所有客户端都有连接,但在从客户端读取内容时,我得到了java.nio.channels.IllegalBlockingModeException。请帮助我这里是异常发生的代码。同时达到PrintRequest class异常的while (rbc.read(b) != -1) occures public class PrintRequest

    0热度

    2回答

    SocketChannel channel = (SocketChannel) key.channel(); ByteBuffer buffer = ByteBuffer.allocate(1024); int numRead = -1; try { numRead = channel.read(buffer); System.out.pri