writeObject - java后,client socket变为null

时间:2017-06-28 20:03:59

标签: java sockets client-server

我正在尝试使用以下方法从服务器向客户端发送消息:

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包围它),当我调试时,它只是在所述特定行之后发生变化..

1 个答案:

答案 0 :(得分:0)

一些想法:

  1. 程序中的其他位置字段被设置为null;

  2. 字段不会变为空,另一组未初始化的字段正在检查/导致问题(例如来自错误的实例);或

  3. java虚拟机坏了或者其他一些非常奇怪的事情正在发生。

  4. msg对象,我们不知道它是什么,正在用writeObject方法弄乱套接字 无论如何,发布的代码似乎不是这些字段变为空的原因,如果没有Minimal, Complete, and Verifiable example,很难做出更好的猜测。