socket传输图片用shutdownoutput()之后无法继续传输数据

socket传输图片用shutdownoutput()之后无法继续传输数据
前言
java的socket是一个全双工套接字,任何的输入流或输出流的close()都会造成Socket关闭。使用java服务器向客户端发送图片,需要使用socket.shutdownOutput()方法关闭套接字的输出流,使服务器知道输出流关闭,可以得到流末尾标志(-1)。同样,可以使用socket.shutdownInput()方法单独关闭套接字的输入流。
以此实现图片传输结束通知接收端传输完毕。
问题
但是,一旦使用对socket使用shutdownoutput()函数,此socket就无法再传输数据,没有办法使其恢复,除非关闭重新打开端口,但此方式复杂,也不利于维护。
解决方案
所以建议建立一个socket(用不同端口号)专门用来传输图片,传完shutdownoutput()之后直接关闭不再使用。

你可能感兴趣的:(Linux,socket,图片,shutdownoutput)