gpt4 book ai didi

java - 无法从 SocketChannel 读取数据

转载 作者:行者123 更新时间:2023-12-02 13:03:10 62 4
gpt4 key购买 nike

我们有一个带有 https 的服务器,它在端口 443 上运行。我想从服务器读取字节。我正在使用以下代码。

private void openAndConfigureChannel(Selector sel) throws IOException {
SSLSocketFactory factory =
(SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket sslSocket =
(SSLSocket) factory.createSocket(address,port);

sslSocket.startHandshake();
SocketChannel channel = SocketChannel.open();
channel.connect(sslSocket.getRemoteSocketAddress());
channel.configureBlocking(false);

TCLog.i(TAG,"channel:"+channel);

//channel.configureBlocking(false);
channel.register(sel, channel.validOps());
}

在读取数据时

private byte[] readData(SelectionKey key) throws Exception {
SocketChannel socketChannel = (SocketChannel) key.channel();
buf.clear();
if (socketChannel .read(buf) == -1) {
socketChannel .close();
Log.i(TAG, "Error during read operation");
}
buf.flip();
byte[] array = buf.array();
int toPosition = buf.limit();
byte[] subarray = ArrayUtils.subarray(array, 0, toPosition);
return subarray;
}

它给了我一个异常,因为连接被同行重置。上线socketChannel.read()

我已尝试使用 InetSocketAddress 事件,但仍然没有运气有人可以告诉我该怎么做吗?

最佳答案

我已关注this关联。以及EJP给出的建议.

现在我可以连接并读取数据了。

关于java - 无法从 SocketChannel 读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44241628/

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