被java中的socket输入输出流的关闭问题搞疯了,求大神详细解释下可以吗

我一个程序,起了客户端服务器端两个main线程分别来读写socket流,自己读自己写嘛
结果呢我发现如下问题:
当一端的socket输入 流关闭的时候,另一端再往里写东西,异常
或者另一端执行输入流读东西 异常

当一端输出流关闭的时候, 另一单输入流仍然可以读,没问题
另一端输出流 再要读东西,抛出异常

                                                                            求解释
                                                                            我调试过几十遍了!!!

流关闭的话,那么这个socket连接也会被关闭的啊,当然会报异常的啊。