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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jiangshicun007 中级黑马   /  2015-11-28 21:57  /  3042 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

5黑马币
         * 客户端用键盘向服务器发送数据,服务器讲输入的数据反转后返回
         */
        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();
                }
        }

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

最佳答案

查看完整内容

* 客户端用键盘向服务器发送数据,服务器讲输入的数据反转后返回 */ 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(s ...

9 个回复

正序浏览
服务端接收客户端的实际上建一个线程就可以了!
回复 使用道具 举报
mars314 中级黑马 2015-11-30 20:22:53
8#
兄弟你再好好看看。多次运行根本没有问题好不。
回复 使用道具 举报
不好意各位,你们的方法都有问题!你们的改进方案我也试了不行,问题是只能够正确的运行一次,多次运行就会出异常!
回复 使用道具 举报
厉害,给力!!!!
回复 使用道具 举报
为啥我试了没问题呢 我把服务器和客户端分开了 先打开服务器再打开客户端 可以顺利实现你要的功能
回复 使用道具 举报
把scanner放在循环里面,否则第二次接收不到输入就阻塞了
回复 使用道具 举报
Coolman 发表于 2015-11-28 22:49
客户端的new Socket应该放在循环外面

放在外面也不行
回复 使用道具 举报
客户端的new Socket应该放在循环外面
回复 使用道具 举报
* 客户端用键盘向服务器发送数据,服务器讲输入的数据反转后返回
         */
        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();
                }
        }

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


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马