TCP程序中的问题(Java)

mis*_*tor 6 java networking tcp

任何人都可以帮我调试这个程序吗?

以下是服务器代码:

package networking;

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

class TcpServer {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(5555);
        while (true) {
            Socket client = serverSocket.accept();
            Scanner reader = new Scanner(client.getInputStream());
            PrintWriter writer = new PrintWriter(client.getOutputStream());
            String inputString = reader.nextLine();
            System.out.println("Received from client : " + inputString);
            writer.write(inputString.toUpperCase());
            client.close();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是客户端代码:

package networking;

import java.io.PrintWriter;
import java.io.IOException;
import java.net.Socket;
import java.util.Scanner;

class TcpClient {
    public static void main(String[] args) throws IOException {
        Socket client = new Socket("localhost", 5555);
        PrintWriter writer = new PrintWriter(client.getOutputStream());
        Scanner reader=new Scanner(client.getInputStream());
        writer.println("oPen SOurCe RUleS !");
        System.out.println("Received from server : "+reader.nextLine());
        client.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是当我运行这个程序时,客户端和服务器都进入无限期等待状态.有人能告诉我这段代码有什么问题吗?

提前致谢!

Fra*_*ger 7

你试过Flushing the PrintWriter

您关闭了流,但您从未通知作者您将要这样做.