Java:客户端不从服务器读取流

Java:客户端不从服务器读取流,java,sockets,stream,client-server,Java,Sockets,Stream,Client Server,我正在制作一个客户端-服务器结构的登录系统。我在类的顶部编写了流和套接字变量,以避免编写太多代码。我的服务器正常启动,没有错误。但是客户端什么也不做!它不从服务器读取数据 怎么了 服务器 ServerSocket serverSocket = new ServerSocket(port) Socket socket = serverSocket.accept(); DataInputStream clientIn = new DataInputStream(socket.getInputStr

我正在制作一个客户端-服务器结构的登录系统。我在类的顶部编写了流和套接字变量,以避免编写太多代码。我的服务器正常启动,没有错误。但是客户端什么也不做!它不从服务器读取数据

怎么了

服务器

ServerSocket serverSocket = new ServerSocket(port)
Socket socket = serverSocket.accept();

DataInputStream clientIn = new DataInputStream(socket.getInputStream());
DataOutputStream serverOut = new DataOutputStream(socket.getOutputStream());


public static void main(DataInputStream clientIn, DataOutputStream serverOut)throws Exception, java.lang.Exception {

            String string = "";
            String string2 = "";
            String username = "admin";
            String password = "123";
            boolean loggedIn = false;

            while(!loggedIn){
                while(!string.equals(username)) {
                    serverOut.writeUTF("Enter username:");
                    string = clientIn.readUTF();
                    if (string.equals(username)) {
                        while (!string2.equals(password)) {
                            serverOut.writeUTF("Enter password:");
                            string2 = clientIn.readUTF();
                            if (string2.equals(password)) {
                                serverOut.writeUTF("Login Successful");
                                loggedIn = true;
                            } else {
                                serverOut.writeUTF("Invalid password try again");
                            }
                        }
                    } else {
                        serverOut.writeUTF("Invalid username try again");
                    }
                }
                System.out.println("client says: " + string);
            }
    }
客户端


Socket socket = new Socket("localhost", 40000);
DataInputStream dataInputStream = new DataInputStream(socket.getInputStream());
DataOutputStream dataOutputStream = new DataOutputStream(socket.getOutputStream());


public static void main(DataInputStream dataInputStream, DataOutputStream dataOutputStream) {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

            String string = "", string2 = "";
            boolean loggedIn = false;

            while (true) {
                string2 = dataInputStream.readUTF();
                System.out.println(string2);
                if(string2.equals("Login Successful")){
                    loggedIn = true;
                    break;
                }
                if(string2.equals("Invalid username try again")||string2.equals("Invalid password try again")){
                    string = dataInputStream.readUTF();
                    System.out.println(string);
                }
                string = br.readLine();
                dataOutputStream.writeUTF(string);
                dataOutputStream.flush();
            }
    }

我认为部分问题在于您使用的是DataInputStream,而不是阅读器。你需要阅读文本。我认为部分问题在于你使用的是DataInputStream而不是阅读器。你需要阅读课文。