A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 阿阿阿阿兵 中级黑马   /  2017-5-25 11:40  /  910 人查看  /  3 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

大神看过来!TCP传输中的服务端和客户端分别都有三个流,为啥最后都只关闭一个流
public class UploadServer {
        public static void main(String[] args) throws Exception {
                System.out.println("上传服务端。。。。");
               
                //1
                ServerSocket ss = new ServerSocket(10088);
               
                //2
                Socket s = ss.accept();
               
                System.out.println(s.getInetAddress().getHostAddress()+"...connected");
               
                //3
                BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
               
                //4
                BufferedWriter bufw = new BufferedWriter(new FileWriter("C:/123.txt"));
                String line = null;
                while((line = bufIn.readLine())!= null){
                        bufw.write(line);
                        bufw.newLine();
                        bufw.flush();
                }
               
                PrintWriter out = new PrintWriter(s.getOutputStream(),true);
                out.println("上传成功");
               
                bufw.close();
               
                s.close();
                ss.close();
        }
}
public class UploadClient {
        public static void main(String[] args) throws Exception {
                System.out.println("上传客户端。。。。");
                File file = new File("D:/123.txt");
                System.out.println(file.exists());
               
                //1
                Socket s = new Socket("localhost",10088);
               
                //2
                BufferedReader bufr = new BufferedReader(new FileReader(file));
               
                //3
                PrintWriter out = new PrintWriter(s.getOutputStream(),true);
               
                String line = null;
                while((line = bufr.readLine()) != null){
                        out.println(line);
                }
               
                //告诉服务端,客户端写完了
                s.shutdownOutput();
               
                //4
                BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
                String str = bufIn.readLine();
                System.out.println(str);
               
                bufr.close();
                s.close();
        }
}

3 个回复

倒序浏览
大神们帮看看啊
回复 使用道具 举报
回复 使用道具 举报
因为另外两个流是最便捷的实现
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马