黑马程序员技术交流社区

标题: 【广州校区】【原创】TCP协议互发聊天代码 [打印本页]

作者: wuwei丶    时间: 2018-10-25 15:17
标题: 【广州校区】【原创】TCP协议互发聊天代码
服务端:public class Server {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(8080);
        Socket socket = serverSocket.accept();
        new Thread(() -> {
            while (true) {
                try {
                    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                    String string;
                    while ((string = bufferedReader.readLine()) != null&&!string.equals("exit")) {
                        System.out.println("客户端:" + string);
                    }
                    if (string.equals("exit")) {
                        System.out.println("对方已下线");
                        System.exit(0);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }).start();
        new Thread(() -> {
            try {
                while (true) {
                    BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
                    Scanner scanner = new Scanner(System.in);
                    String next = scanner.next();
                    bufferedWriter.write(next);
                    bufferedWriter.newLine();
                    bufferedWriter.flush();
                    if (next.equals("exit")) {
                        System.exit(0);
                    }
                }

            } catch (IOException e) {
                e.printStackTrace();
            }
        }).start();
    }
}

客户端:
public class Client {
    public static void main(String[] args) throws IOException {
        Socket socket = new Socket("127.0.0.1", 8080);
        new Thread(() -> {
            try {
                while (true) {
                    BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
                    Scanner scanner = new Scanner(System.in);
                    String next = scanner.next();
                    bufferedWriter.write(next);
                    bufferedWriter.newLine();
                    bufferedWriter.flush();
                    if (next.equals("exit")) {
                        System.exit(0);
                    }
                }

            } catch (IOException e) {
                e.printStackTrace();
            }
        }).start();
        new Thread(() -> {
            while (true) {
                try {
                    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                    String string;
                    while ((string = bufferedReader.readLine()) != null&&!string.equals("exit")) {
                        System.out.println("服务端:" + string);
                    }
                    if (string.equals("exit")) {
                        System.out.println("对方已下线");
                        System.exit(0);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }
}







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