TCP程序(Java)中的问题

TCP程序(Java)中的问题,java,networking,tcp,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 I

有人能帮我调试这个程序吗

以下是服务器代码:

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();
        }
    }
}
这是客户端代码:

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();
    }
}
问题是,当我运行这个程序时,客户端和服务器都进入无限等待状态。有人能告诉我这个代码有什么问题吗

提前谢谢

您是否尝试过
PrintWriter


您关闭了流,但从未通知编写器您将要这样做。

代码正确吗。TcpClient seam的导入将出错:未导入
PrintWriter
,未使用
DataOutputStream
。无论如何,我建议不要使用PrintWriter,因为它不会引发异常,您必须检查调用
checkError
的错误。我只适合记录。@Carlos:谢谢你指出这一点!我现在已经改正了!:)@卡洛斯:我应该用什么来代替PrintWriter呢?我想到了
OutputStreamWriter
。。。或者别忘了在
PrintWriter
上使用
checkError
。@Carlos:谢谢你的建议!我一定会记住的!:-)