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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bztf 中级黑马   /  2015-4-25 13:30  /  640 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

服务器代码
public class Server {
        public static void main(String[] args) throws IOException{
                ServerSocket ss = new ServerSocket(14521);
                Socket s = ss.accept();
                InputStream is = s.getInputStream();
                BufferedReader br = new BufferedReader(new InputStreamReader(is));
                PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
               
                String temp = null;
                while((temp = br.readLine())!=null)
                {
                        pw.println(temp);
                }
                pw.close();
                br.close();
                ss.close();
                s.close();
        }
}
上面的代码是没有问题的,可是把打印流换成高效字符输出流就不能正常运行了  为什么
高效字符输出流代码:
public class Server {
        public static void main(String[] args) throws IOException{
                ServerSocket ss = new ServerSocket(14521);
                Socket s = ss.accept();
                InputStream is = s.getInputStream();
                BufferedReader br = new BufferedReader(new InputStreamReader(is));
                BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
               
                String temp = null;
                while((temp = br.readLine())!=null)
                {
                        bw.write(temp);
                        bw.flush();
                        bw.newLine();
                }
                bw.close();
                br.close();
                ss.close();
                s.close();
        }
}
客户端代码
public class client {

        public static void main(String[] args) throws IOException{
                Socket s = new Socket("192.168.0.110",14521);
                BufferedWriter os =new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
                BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
                Scanner sc = new Scanner(System.in);
                String temp = null;
                while(!((temp= sc.nextLine()).equals("end")))
                {
                        os.write(temp);
                        os.newLine();
                        os.flush();
                        System.out.println(br.readLine());
                       
                }
                sc.close();
                os.close();
        }

}

2 个回复

倒序浏览
服务端应该先换行再刷新~!
回复 使用道具 举报
刘斌斌 发表于 2015-4-25 14:20
服务端应该先换行再刷新~!

说得对,可还是不行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马