我正在尝试使用以下方法从服务器向客户端发送消息:
final public void sendToClient(Object msg) throws IOException
{
if (clientSocket == null || output == null)
throw new SocketException("socket does not exist");
output.writeObject(msg);
this.output.flush();
}
之前
output.writeObject;
一切似乎都很好,但紧接着,socket和输入/输出流都变为null ..
知道为什么吗?
编辑: 这是代码的所有服务器 - 客户端部分的链接 - https://drive.google.com/open?id=0B02W0JiTbQUXS1RCVk9ORER3YUU
当我写下变量变为null时,我的意思是没有抛出异常(尝试用try-catch包围它),当我调试时,它只是在所述特定行之后发生变化..
答案 0 :(得分:0)
一些想法:
程序中的其他位置字段被设置为null;
字段不会变为空,另一组未初始化的字段正在检查/导致问题(例如来自错误的实例);或
java虚拟机坏了或者其他一些非常奇怪的事情正在发生。
msg
对象,我们不知道它是什么,正在用writeObject
方法弄乱套接字
无论如何,发布的代码似乎不是这些字段变为空的原因,如果没有Minimal, Complete, and Verifiable example,很难做出更好的猜测。