1

我正在将一个有效的单人游戏转换为跨网络运行。

这是一个在终端上运行的简单游戏。它只是程序的文本输入/文本输出。

它有几个类,其中大部分打印到 System.out 或 System.err

但我想将这些消息发送到客户端,而不是在服务器系统上打印它们。

当套接字 i/o 在一个类的主线程中进行时,我该怎么做?

基本上我如何从其他类访问它?

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

    ServerSocket serverSocket = null;
    try {
        serverSocket = new ServerSocket(45444);
    } catch (IOException e) {
        System.err.println("Could not listen on port: 45444.");
        System.exit(1);
    }

    Socket clientSocket = null;
    try {
        clientSocket = serverSocket.accept();
    } catch (IOException e) {
        System.err.println("Accept failed.");
        System.exit(1);
    }

    PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
    BufferedReader in = new BufferedReader(new InputStreamReader(
            clientSocket.getInputStream()));
    String inputLine;
    String outputLine;
4

1 回答 1

2

您可以使用System.setOut()andSystem.setErr()将 STDOUT 和 STDERR 重定向到任意输出流(在您的情况下为网络 I/O 流)。

于 2013-03-15T18:17:23.413 回答