自动冲洗打印词

发布于 2025-02-04 09:45:03 字数 2363 浏览 4 评论 0原文

我正在使用Java接线客户/服务器程序,并且启用了自动冲洗,但是我的代码有一个错误,当我将第一封消息从客户端发送到服务器时,没有来自服务器的响应,但是在那之后一切都还好。这些是我的代码:

客户端

public class Client1 {
    public static void main(String[] args) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    Socket socket = new Socket("localhost",5000);
                    BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                    PrintWriter output = new PrintWriter(socket.getOutputStream(), true);
                    Scanner scanner = new Scanner(System.in);
                    while (true) {
                        if (socket.getInputStream().available() != 0) {
                            String in = input.readLine();
                            System.out.println(in);
                        }
                        System.out.println("Enter your message to the server: ");
                        String out = scanner.nextLine();
                        output.println(out);
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }

            }
        }).start();
    }
}

服务器

public class Main {

    public static void main(String[] args) throws IOException {
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    ServerSocket serverSocket1 = new ServerSocket(5000);
                    Socket socket1 = serverSocket1.accept();
                    System.out.println("Accepted");
                    BufferedReader input = new BufferedReader(new InputStreamReader(socket1.getInputStream()));
                    PrintWriter output = new PrintWriter(socket1.getOutputStream(), true);
                    while (true) {
                        if (socket1.getInputStream().available() != 0) {
                            String text = input.readLine();
                            System.out.println("got it!");
                            output.println("We got your message!");
                        }
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }
}

可以帮助我吗?谢谢

I am wiring a client/server program with Java and I enable auto flush but my code has a bug, when I send first message from client to server, no response comes from server but after that everything is ok. These are my codes :

Client

public class Client1 {
    public static void main(String[] args) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    Socket socket = new Socket("localhost",5000);
                    BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                    PrintWriter output = new PrintWriter(socket.getOutputStream(), true);
                    Scanner scanner = new Scanner(System.in);
                    while (true) {
                        if (socket.getInputStream().available() != 0) {
                            String in = input.readLine();
                            System.out.println(in);
                        }
                        System.out.println("Enter your message to the server: ");
                        String out = scanner.nextLine();
                        output.println(out);
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }

            }
        }).start();
    }
}

Server

public class Main {

    public static void main(String[] args) throws IOException {
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    ServerSocket serverSocket1 = new ServerSocket(5000);
                    Socket socket1 = serverSocket1.accept();
                    System.out.println("Accepted");
                    BufferedReader input = new BufferedReader(new InputStreamReader(socket1.getInputStream()));
                    PrintWriter output = new PrintWriter(socket1.getOutputStream(), true);
                    while (true) {
                        if (socket1.getInputStream().available() != 0) {
                            String text = input.readLine();
                            System.out.println("got it!");
                            output.println("We got your message!");
                        }
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }
}

Can somebody help me? Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文