Spasol 2021-07-05 21:25 采纳率: 60%
浏览 14

客户端连接服务端(JAVA)

这是客户端的代码

package Client;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.util.Scanner;

public class client {
    private static final BufferedReader KEYBOARD_INPUT = new BufferedReader(
            new InputStreamReader(System.in));
    public static String getString(String prompt) throws Exception {
        System.out.print(prompt);
        String str = KEYBOARD_INPUT.readLine();
        return str;
    }
    public static void main(String args[]) throws Exception {
        Socket client = new Socket("47.96.154.95", 9999);
        Scanner scan = new Scanner(client.getInputStream());
        scan.useDelimiter("\n");
        PrintStream out = new PrintStream(client.getOutputStream());
        boolean flag = true;
        while (flag) {
            String input = getString("请输入:").trim();
            out.println(input);
            if (scan.hasNext()) {
                System.out.println(scan.next());
            }
            if ("stop".equalsIgnoreCase(input)) {
                flag = false;
            }
        }
        scan.close();
        out.close();
        client.close();
    }
}

这是服务器的代码 (内网IP:172.26.40.160,公网IP:47.96.154.95;防火墙开放了9999端口)

package program_1;

import java.io.IOException;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

public class Server {
    public static class ClientThread implements Runnable {
        private Socket client = null;
        private Scanner scan = null;
        private PrintStream out = null;
        private boolean flag = true;
        public ClientThread(Socket client) throws Exception {
            this.client = client;
            this.scan = new Scanner(client.getInputStream());
            this.scan.useDelimiter("\n");
            this.out = new PrintStream(client.getOutputStream());
        }
        @Override 
        public void run() {
            while (this.flag) {
                if (scan.hasNext()) {
                    String val = scan.next().trim();
                    if ("stop".equalsIgnoreCase(val)) {
                        out.println("stoping...");
                        this.flag = false;
                    } else {
                        out.println("[ECHO]" + val);
                    }
                }
            }
            try {
                scan.close();
                out.close();
                client.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    public static void main(String args[]) throws Exception {
        ServerSocket server = new ServerSocket(9999);
        System.out.println("wait for the client connect...");
        boolean flag = true;
        while (flag) {
            Socket client = server.accept();
            new Thread(new ClientThread(client)).start();
        }
        server.close();
    }
}

在客户端连接服务器时,客户端连接不上服务端,这是为什么???

  • 写回答

2条回答 默认 最新

  • 三师兄东流 2021-07-05 22:20
    关注

    检查下服务器安全组是否开放了9999端口

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。