gpt4 book ai didi

java - 在 NIO 中配对 SocketChannel

转载 作者:行者123 更新时间:2023-12-01 12:57:33 24 4
gpt4 key购买 nike

我正在尝试找到使用 java NIO 配对两个套接字 channel 的最优雅的方法。到目前为止,我正在向一个 channel 写入数据,从中读取数据,然后将结果写入另一个 channel 。我的处理方式似乎是一种黑客行为,我想知道是否有人知道更好的方法?

    public void readyChannels() {
while (true) {
try {
selector.select();// block here until a new IO event
Iterator keys = selector.selectedKeys().iterator();
while (keys.hasNext()) {
SelectionKey key = (SelectionKey) keys.next();
keys.remove();// do not process this again
write(key.channel(),"random data".getBytes());
byte[] bytes = read(key.channel());
write(otherChannel, bytes);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

最佳答案

只需将一个 channel 设置为另一个 channel 选择键的键附件,或者最好还是创建一个包含这两个 channel 的对象并将其设置为附件。

关于java - 在 NIO 中配对 SocketChannel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23755340/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com