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

© 咕咕猫 中级黑马   /  2013-10-14 09:26  /  1369 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 咕咕猫 于 2013-10-14 18:21 编辑
  1. import java.io.*;
  2. import java.net.*;
  3. class TranClient//客户端
  4. {
  5.         public static void main(String[]args)throws Exception
  6.         {
  7.                 Socket s = new Socket("192.168.1.126",10007);
  8.                 BufferedReader bufr = new BufferedReader(new FileReader("01.java"));//关联文件
  9.                 PrintWriter out = new PrintWriter(s.getOutputStream(),true);//获取Socket输出流
  10.                 String line = null;
  11.                 while((line = bufr.readLine())!=null)
  12.                 {
  13.                         out.println(line);
  14.                 }
  15.                 bufr.close();
  16.                 s.close();
  17.         }
  18. }
  19. class TransServer//服务端
  20. {
  21.         public static void main(String[]args)throws Exception
  22.         {
  23.                 ServerSocket ss = new ServerSocket(10007);
  24.                 Socket s = ss.accept();
  25.                 String ip = s.getInetAddress().getHostAddress();
  26.                 System.out.println(ip);
  27.                 BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));//获取客户端读取流
  28.                 PrintWriter out = new PrintWriter(new FileWriter("1.java"),true);//定义接收数据的文件
  29.                 String line = null;
  30.                 while((line=bufIn.readLine())!=null)
  31.                 {
  32.                         out.println(line);
  33.                 }
  34.                 s.close();
  35.                 ss.close();
  36.         }
  37. }
复制代码
看老毕的视频,这样写应该会两边同时等待,加入结束标志后才能结束,为什么我这个没加也能结束,提醒下测试代码的时候把IP给成各位自己的IP啊

评分

参与人数 1技术分 +1 收起 理由
李江 + 1

查看全部评分

1 个回复

倒序浏览
因为你在执行完while循环之后就把流关了,流关了服务端也就关了,程序自然结束
毕老师的视频里服务器有一个返回的流  而你这里没有  所以没有造成等待

评分

参与人数 1技术分 +1 收起 理由
李江 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马