代码之家  ›  专栏  ›  技术社区  ›  missingfaktor Kevin Wright

TCP程序(Java)中的问题

  •  6
  • missingfaktor Kevin Wright  · 技术社区  · 15 年前

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

    以下是服务器代码:

    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();
        }
    }
    

    问题是,当我运行这个程序时,客户机和服务器都进入不确定的等待状态。有人能告诉我这个代码有什么问题吗?

    事先谢谢!

    1 回复  |  直到 15 年前
        1
  •  7
  •   Frank Krueger    15 年前

    你试过了吗? Flushing 这个 PrintWriter ?

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