此代码模拟了正常系统成socket服务端的方式,就是一个无限循环监听我们绑定的端口,当有客户端请求来了之后进行处理。socket.shutdownOutput()方法:他是一种单向关闭流的方法,即关闭客户端的输出流并不会关闭服务端的输出流。通过shutdownOutput()方法只是关闭了输出流,但socket仍然是连接状态,连接并未关闭。如果将节点流关闭以后再关闭处理流,会抛出IO异常。我自己的理解是flush()的作用是为了把数据从内存中刷新到socket流中,shutdownOutput()方法是告诉服务端,我没有东西要传输了,所以服务端也就会停止等待读取客户端发送的内容,程序就可以继续向下走。这是因为直接读取到socket的输出流,并没有读到内存中。

Java socket通讯实现过程及问题解决

Java socket通讯实现过程及问题解决

Java socket通讯实现过程及问题解决

Java socket通讯实现过程及问题解决