Как непрерывно отправлять сообщения путем реализации потока? (JAVA) - PullRequest
0 голосов
/ 01 мая 2020

Я недавно узнал о работе в сети с помощью java. У меня есть сервер и клиент, которые реализуют двухстороннюю связь. Но я не могу отправлять сообщения постоянно, как мне это сделать?

public class Server {
    public static void main(String[] args){
        final int port;
        Scanner obj = new Scanner(System.in);
        System.out.print("Enter chat 2 port: ");
        port = obj.nextInt();
        ServerSocket ss = new ServerSocket(port);
        Socket s = ss.accept();
        InetAddress ip = InetAddress.getLocalHost();
        System.out.println("IP address of chat 2 is : " + ip);
        System.out.println("Connection Established");
        PrintStream ps = new PrintStream(s.getOutputStream());
        BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
        BufferedReader kb = new BufferedReader(new InputStreamReader(System.in));
        while (true) {
            String str, str1;
            while ((str = br.readLine()) != null) {
                System.out.println(str);
                str1 = kb.readLine();
                ps.println("Server said: " +str1);
            }
            ps.close();
            br.close();
            kb.close();
            ss.close();
            s.close();
            System.exit(0);


        }

    }
}

Клиент:

public class Client {

    public static void main(String[] args) {
        BufferedReader kb = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Enter the port of Chat 1: ");
        int port = Integer.parseInt(kb.readLine());
        Socket s = new Socket("localhost",port);
        InetAddress ip = InetAddress.getLocalHost();
        System.out.println("IP address of chat 1 is : " + ip);
        System.out.println("Connection Established");
        PrintStream ps = new PrintStream(s.getOutputStream());
        DataOutputStream dos = new DataOutputStream(s.getOutputStream());
        BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
        String str, str1;
        while (!(str = kb.readLine()).equalsIgnoreCase("exit")) {
            dos.writeBytes("Client said :" + str + "\n");
            str1 = br.readLine();
            System.out.println( str1);
        }
        dos.close();
        br.close();
        kb.close();
        s.close();
    }
}

Я хочу знать, как поместить некоторые команды в поток .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...