gpt4 book ai didi

java - 从 Socket.getInputStream() 抛出 NullPointerException

转载 作者:行者123 更新时间:2023-11-30 11:52:46 24 4
gpt4 key购买 nike

我很少收到此代码中引发的 NullPointerException。这是视频流应用程序的一部分,该应用程序同时使用多个 RTSP 流,并定期断开和重新连接它们(即基于用户)。

private void openSocket() throws IOException {
rtspSocket = new Socket();
rtspSocket.connect(new InetSocketAddress(ip, port), connectionTimeout);
rtspSocket.setSoTimeout(readTimeout);

// NullPointerException on next line
bufStream = new BufferedInputStream(rtspSocket.getInputStream());
}

堆栈轨迹如下:

java.lang.NullPointerException
at java.io.FileInputStream.<init>(Unknown Source)
at java.net.SocketInputStream.<init>(Unknown Source)
at java.net.PlainSocketImpl.getInputStream(Unknown Source)
at java.net.Socket$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.Socket.getInputStream(Unknown Source)
at my.code.shown.above()

我的 Google-fu 已经拉起来了 this bug from Apr 2000this bug from Nov 1997但我不相信它们适用。我还浏览了我正在构建的 JDK 1.6 update 7 代码,并注意到只有当 PlainSocketImpl 中包含的 FileDescriptor 是时才会引发此异常无效的。然后将该值从 SocketInputStream 构造函数传递到 FileInputStream 构造函数。

除了捕获 NPE 并抛出 IOException 之外,我还能做些什么吗?我怀疑这是由某种将 FileDescriptor 设置为 null 的 IOException 引起的。如果改为抛出 IOException 会容易得多!

最佳答案

第一个错误似乎非常相关。第二个,不是这样,它是在多年前通过添加 shutdownOutput() 解决的。

关于java - 从 Socket.getInputStream() 抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6675670/

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