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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 九天玄妖 中级黑马   /  2016-4-30 23:40  /  408 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在多线程服务端和单线程客户端代码中,你们有尝试输出流使用OutputStream吗?
我把输出流改成这个,运行后就没有结果了,搞不懂为什么?有没有这一块理解比较深刻的大神,请分享下经验,谢谢。

3 个回复

倒序浏览
上代码看看
回复 使用道具 举报

public class Test_Server {

        public static void main(String[] args) throws IOException {
                ServerSocket server = new ServerSocket(54321);
                System.out.println("服务器启动,绑定54321端口");
               
                while(true) {
                        final Socket socket = server.accept();                                        //接受客户端的请求
                       
                        new Thread() {                                                                                        //开启一条线程
                                public void run() {
                                        try {
                                                BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));        //获取输入流
                                                OutputStream os = socket.getOutputStream();
                                                String line = br.readLine();                                //将客户端写过来的数据读取出来
                                                System.out.println(line);
                                                os.write(line.getBytes());
                                                socket.close();
                                        } catch (IOException e) {                                               
                                               
                                                e.printStackTrace();
                                        }
                                }
                        }.start();
                }
        }

}

public class Test_Client {

        public static void main(String[] args) throws UnknownHostException, IOException {
                Scanner sc = new Scanner(System.in);                                //创建键盘录入对象
                System.out.println("请输入一个字符串:");
                Socket socket = new Socket("127.0.0.1", 54321);                //创建客户端,指定ip地址和端口号
               
                BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));        //获取输入流
                OutputStream os = socket.getOutputStream();
                os.write(sc.nextLine().getBytes());
                System.out.println(br.readLine());                                         //将反转后的结果读出来
               
                socket.close();
        }

}
回复 使用道具 举报
你写出去写的是一个字节数组,读的时候读字符串  应该是这里出现问题了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马