黑马程序员技术交流社区

标题: 在线急等 [打印本页]

作者: jiangshicun007    时间: 2015-11-28 21:57
标题: 在线急等
         * 客户端用键盘向服务器发送数据,服务器讲输入的数据反转后返回
         */
        public static void main(String[] args) throws UnknownHostException, IOException {
                Scanner sc=new Scanner(System.in);
                while (true) {
                        Socket socket =new Socket("127.0.0.1",54321);
                        BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
                        PrintStream ps=new PrintStream(socket.getOutputStream());
                        ps.println(sc.nextLine());
                        System.out.println(br.readLine());
                }
        }

}
/**
         * 服务器短接收客户端输入的数据反转后返回
         */
        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()));
                                                PrintStream ps = new PrintStream(
                                                                socket.getOutputStream());
                                                String line=br.readLine();
                                                line=new StringBuilder(line).reverse().toString();
                                                ps.println(line);
                                        } catch (IOException e) {
                                                e.printStackTrace();
                                        }
                                }

                        }.start();
                }
        }

}
一直有问题解决不了
在线求高手指点


作者: mars314    时间: 2015-11-28 21:57
* 客户端用键盘向服务器发送数据,服务器讲输入的数据反转后返回
         */
        public static void main(String[] args) throws UnknownHostException, IOException {
                Scanner sc=new Scanner(System.in);
                while (true) {
                        Socket socket =new Socket("127.0.0.1",54321);
                        BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
                        PrintStream ps=new PrintStream(socket.getOutputStream());
                        ps.println(sc.nextLine());
                        System.out.println(br.readLine());
                }
        }

}
/**
         * 服务器短接收客户端输入的数据反转后返回
         */
        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()));
                                                PrintStream ps = new PrintStream(
                                                                socket.getOutputStream());
                                                String line=br.readLine();
                                                line=new StringBuilder(line).reverse().toString();
                                                ps.println(line);
                                                                                                socket.close();
                                        } catch (IOException e) {
                                                e.printStackTrace();
                                        }
                                }

                        }.start();
                }
        }

}
/*兄弟再试试这个,哈哈,你哪里就差了一个结束标志*/



作者: Coolman    时间: 2015-11-28 22:49
客户端的new Socket应该放在循环外面
作者: jiangshicun007    时间: 2015-11-29 09:26
Coolman 发表于 2015-11-28 22:49
客户端的new Socket应该放在循环外面

放在外面也不行
作者: Coolman    时间: 2015-11-29 14:46
把scanner放在循环里面,否则第二次接收不到输入就阻塞了
作者: Weidan    时间: 2015-11-29 22:19
为啥我试了没问题呢 我把服务器和客户端分开了 先打开服务器再打开客户端 可以顺利实现你要的功能
作者: 王开冰    时间: 2015-11-30 07:47
厉害,给力!!!!
作者: jiangshicun007    时间: 2015-11-30 10:06
不好意各位,你们的方法都有问题!你们的改进方案我也试了不行,问题是只能够正确的运行一次,多次运行就会出异常!
作者: mars314    时间: 2015-11-30 20:22
兄弟你再好好看看。多次运行根本没有问题好不。
作者: jiangshicun007    时间: 2015-12-3 19:32
服务端接收客户端的实际上建一个线程就可以了!




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