如果client端和server端进行socket通信,当某次通信完毕server端关闭,但client没写socket.close(),只关闭了流,当产生多个这样的线程对server端进行通信时,会产生什么问题吗?

解决方案 »

  1.   

    客户端的Socket就象水龙头出水口,而流就像接在水龙头的管子,服务端Socket就象入水口.你关闭了流就是把管子给截断了,水龙头还在,如果你下次还想再次送水,只需要根据出水口,入水口就可以生成管子了.但是Socket关闭了,那就相当与水龙头没有了.如果你一直没有关闭Socket,客户端就相当于多了一个废弃的水龙头.
      

  2.   

    client没写socket.close(),只会影响client 端,当他再想在同一端口创建socket时,会出异常。对server没有什么影响
      

  3.   

    楼上的很形象~
    对server端没有影响,但对性能是有一定影响的
      

  4.   

    这么形象的解释,收了,同时楼上说的同一端口再创建socket会抛异常,!
      

  5.   

    我觉得 最好不要用NIO,NIO只有在处理很多很多线程时才有明显作用,一般情况下只是增加了系统的复杂性,我现在在做一个C/S的软件,弃用了NIO
      

  6.   

    laughsmile(海边的星空)说得好!