看这大半夜的,大神估计都睡觉了,我来吧..哈哈哈哈
1. PrintWriter out = new PrintWriter(s.getOutputStream(), true);//这个流为什么不关闭了?不占资源吗?
这个流是通过通过Socket的方法获取的,后面又了s.close();那么流也就关掉了.
2. s.shutdownOutput();//为什么输出流关闭后,服务端就会跳出循环?
这句话是告诉服务端,客户端的数据写完了,那么服务端就会收到一个结束标记,所以服务端循环结束了..
3.BufferedReader bufr = new BufferedReader(new InputStreamReader(s.getInputStream()));//这个流为什么不在while()循环之后就关闭?
这个流在循环结束后已经关闭了..不是有s.close()么..理由同1.
4. PrintWriter pw = new PrintWriter(new FileWriter(System.currentTimeMillis()+"UploadServer.txt"),true);//为什么要关闭这个流了?
这个流不是通过 s.getXXX() 而是new了一个FileWriter() 所以你关闭Socket也没用,需要单独关闭之.
5. s.close();//这里为何再次关闭客户端流?
当上传结束后,关闭已经完成操作的客户端的连接,节省服务器的资源.嗯,就是这样.
楼主,有帮助么? |