黑马程序员技术交流社区

标题: 网络编程求教育 [打印本页]

作者: bztf    时间: 2015-4-25 13:30
标题: 网络编程求教育
服务器代码
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();
        }

}

作者: 刘斌斌    时间: 2015-4-25 14:20
服务端应该先换行再刷新~!
作者: bztf    时间: 2015-4-25 14:24
刘斌斌 发表于 2015-4-25 14:20
服务端应该先换行再刷新~!

说得对,可还是不行




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2