java - Java:客户端不从服务器读取流
问题描述
我正在使用客户端-服务器架构制作登录系统。我在类的顶部编写了流和套接字变量以避免过多的代码。我的服务器正常启动,没有错误。但是客户端绝对什么都不做!它不从服务器读取。
怎么了?
服务器
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();
}
}
解决方案
推荐阅读
- python-3.x - 如何使用 pysnmp 遍历子表
- javascript - 无法在“CanvasRenderingContext2D”上执行“putImageData”:参数 1 不是“ImageData”类型
- go - 使用 golang 检查字符串中存在的点数
- roku - BrightScript中组件扩展属性“任务vs组vs场景vs文件名”之间的差异?
- javascript - 我可以创建一个输出以下计数器的计数器吗
- node.js - docusign nodejs客户端的invalid_grant错误
- swift - swift中变量的“范围”
- rundeck - 在 Rundeck 作业失败通知中禁用 NonZeroResultCode 状态详细信息
- c# - 使用基类 (C#) 的 DI
- java - 即使计算机连接到 VPN,如何获取本地计算机的 IP 地址?