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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 再见亦是泪 中级黑马   /  2013-1-22 21:18  /  1239 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package cn.soft.socket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

public class TransClientDemo {

        /**
         * @param args
         * @throws IOException
         * @throws UnknownHostException
         */
        public static void main(String[] args) throws UnknownHostException, IOException {

                Socket s=new Socket("127.0.0.1",10005);//创建客户端窗口
                BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));//读取键盘输入
                PrintWriter out=new PrintWriter(s.getOutputStream(),true);//socket输出流
                BufferedReader bufrin=new BufferedReader(new InputStreamReader(s.getInputStream()));
                String line=null;
                while ((line=bufr.readLine())!=null) {
                        if ("over".equals(line)) {
                                break;
                        }
                out.println(line);
                String upperStr=bufrin.readLine();
                System.out.println(upperStr);
                }
                s.close();
               
        }

}
有这样一个问题 如果我这行里不用自动刷新PrintWriter out=new PrintWriter(s.getOutputStream(),true);//socket也就是不加true,然后在最后加个out.flush();为什么达不到同样的效果,这是为何,用true就没问题会自动刷新

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
把PrintWriter out=new PrintWriter(s.getOutputStream(),true); 中的true自动刷新去掉
在out.println(line);下面加out.flush();可以达到一样的效果
回复 使用道具 举报
在最后?是在哪?你看下是不是加的位置不对!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马