java - java: ObjectInputStream 给出 NullPointerException
问题描述
服务器端
ObjectOutputStream objectOutput = null;
objectOutput = new ObjectOutputStream(serverSocket.getOutputStream());
客户端
ObjectInputStream objectInput = null;
objectInput= new ObjectInputStream(clientSocket.getInputStream());//here is the problem
服务器运行良好。但是在客户端那里objectInput= new ObjectInputStream(clientSocket.getInputStream());
,我得到Exception in thread "main" java.lang.NullPointerException
什么是错的?
解决方案
我的猜测是,在添加 ObjectInputStream 之前,您的套接字或输入流已关闭。如果在服务器端建立连接后,套接字没有存储在可以在您创建它的方法之外检索到的某个位置,则很容易发生这种情况。在这种情况下,套接字将超出范围,对象将被释放,流将关闭。
您没有发布太多代码,但这将是我的默认猜测(与 java.net.Socket 一起工作了很多)关于它发生了什么
推荐阅读
- ionic-framework - 离子5 | 本机设备上的存储未准备好
- storybook - 在故事书 6 中禁用每个故事的画布
- tensorflow - 在子类模型中使用带有自定义 train_step 的 Keras ImageDataGenerator 时出错
- r - 当空间中有多个数据框时,我的功能不起作用
- powershell - 使用一个文件中的 CSV 标头名称来创建具有不同标头名称的新文件
- c++ - 删除向量中的指针
- sql - SSIS:CSV在同一列中使用小数和整数
- node.js - 无法使用 npm 安装 expo
- java - 应用程序上下文形成了 Setter 方法的循环,但不适用于 Spring Boot 中的 @Autowired
- python - 使用日期时间的开始和结束日期剪切数据框