黑马程序员技术交流社区

标题: TCP问题 [打印本页]

作者: 九天玄妖    时间: 2016-4-30 23:40
标题: TCP问题
在多线程服务端和单线程客户端代码中,你们有尝试输出流使用OutputStream吗?
我把输出流改成这个,运行后就没有结果了,搞不懂为什么?有没有这一块理解比较深刻的大神,请分享下经验,谢谢。
作者: cc19930915    时间: 2016-4-30 23:42
上代码看看
作者: 九天玄妖    时间: 2016-4-30 23:47
cc19930915 发表于 2016-4-30 23:42
上代码看看

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();
        }

}
作者: cc19930915    时间: 2016-5-1 00:30
你写出去写的是一个字节数组,读的时候读字符串  应该是这里出现问题了。




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