java socket 服务器收到客户端传来的文件如何返回确认,客户端又如何接收确认信息并弹出成功对话框?

服务器端返回确认消息是和接收文件一起写在多线程的run()函数里的,代码如下

客户端接收确认消息也是写在run()函数里,代码如下

如果没有这两段,服务器本来可以system.out接收成功,可是如果加上这两段,每次到input = new DataInputStream(socket.getInputStream())这里的时候,服务器不会显示接收成功,就是客户端和服务器都卡住了~~
跪求大神解答啊,不知道是多线程的问题还是输入输出流的问题?或者是socket出了问题?

输出流调用完相关的write()方法,需要调用flush()刷新,否则流不会从缓存中发出去,另外客户端注意切换流向的时候一定要把前一个流向关闭,调用
socket.shutdownOutput(); // 关闭输出流
socket.shutdownInput(); //关闭输入流
温馨提示:答案为网友推荐,仅供参考