一个验证密码的问题,不知道为什么输入正确的密码他也会说是错的!本人菜鸟!求大神解释!
服务器程序:import java.net.*;
import java.io.*;
public class server1 
{
private ServerSocket server;
private int port;
Socket socket;
DataOutputStream outStream=null;
DataInputStream inStream=null;
server1(int port) throws IOException
{
server=new ServerSocket(port);
socket=server.accept();
int i=0;
boolean f=true;
String str="Verifying Server!";
outStream=new DataOutputStream(socket.getOutputStream());
inStream=new DataInputStream(socket.getInputStream());
outStream.writeUTF(str);
out:
while(f)
{
if(i<3)
{

String str1=inStream.readUTF();
System.out.println(str1);
String s="nihao";
if(!str1.equals(s))
{
outStream.writeUTF("PassWord Wrong!");
i++;
}
else
{
outStream.writeUTF("Registration Successful");
break out;
}
}
else
{
outStream.writeUTF("Illegal User!");
break out;
}
}
String a=inStream.readUTF();
}
public static void main(String args[]) throws IOException
{
new server1(1010);
}
}
客户机程序:import java.io.*;
import java.net.*;
public class client1 
{
int port;
boolean b=true;
Socket socket;
DataInputStream inStream=null;
DataOutputStream outStream=null;
client1(int port)throws IOException
{
socket=new Socket(InetAddress.getLocalHost(),port);
outStream=new DataOutputStream(socket.getOutputStream());
inStream=new DataInputStream(socket.getInputStream());
String str=inStream.readUTF();
String str1;
if(str.equals("Verifying Server!"))
{
do
{
System.out.println("输入口令:");
byte[] b=new byte[1024];

//从键盘读取字符串
int m=System.in.read(b); 
str1=new String(b,0,0,m-1);
//向服务器发送信息

outStream.writeUTF(str1);
str=inStream.readUTF();
if(str.equals("PassWord Wrong!"))
{
System.out.println(str);
continue;
}
}while(!str.equals("Illegal User!"));
System.out.println(str);
}
else
{
System.out.println("Server Wrong!");

}
}
public static void main(String args[]) throws IOException
{
new client1(1010);
}
}