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而不是阅读器。你需要阅读课文。