【问题标题】:Client not receiving server output客户端不接收服务器输出
【发布时间】:2014-04-20 23:10:32
【问题描述】:

我在 java 中的这个服务器客户端程序上遇到了麻烦。我的程序进入

System.out.println("Check1");
String name = in.nextLine();

在BoardServer 中,然后它就坐在那里,没有任何东西发送给客户端。

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Scanner;


public class BoardServer {
    private static Scanner in;
    private static PrintWriter out;
    private static int num = 1;

    public static void main(String[] args) throws IOException {

        final int SBAP_PORT = 8888;
        ServerSocket server = new ServerSocket(SBAP_PORT);
        System.out.println("Waiting for players to connect...");

        while (true) {
            Socket s = server.accept();
            in = new Scanner(s.getInputStream());
            out = new PrintWriter(s.getOutputStream());
            System.out.println("Check1");
            String name = in.nextLine();
            System.out.println("Check2");
            String message = "Hello " + name + " you are player number " + num;
            num++;
            System.out.println("Check3");
            out.print(message);
            out.flush();
            System.out.println("player connected.");
            Player client = new Player(s);
            Thread t = new Thread(client);
            t.start();
        }
    }
}

【问题讨论】:

  • 我认为你应该为 i/o 流使用 , BufferedReader / Writer
  • 那么把printwriter和Scanner换成BufferReader和Writer就可以解决了吗?

标签: java client-server client


【解决方案1】:

当您将名称发送到服务器时:

out.print(name);

使用

out.println(name);

如果您想在服务器上使用in.nextLine() 阅读它,请发送它。这应该可以解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 2017-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-25
    • 1970-01-01
    相关资源
    最近更新 更多