------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
/**
用户登陆,限次数3次*/
import java.io.*;
import java.net.*;
class UserLogin
{
public static void main(String[] args) throws Exception
{
Socket s=new Socket("192.168.1.102",8888);
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
PrintWriter fwout=new PrintWriter(s.getOutputStream(),true);
BufferedReader brin=new BufferedReader(new InputStreamReader(s.getInputStream()));
for(int i=0;i<3;i++)
{
String line = br.readLine();
if(line==null)//如果在dos命令行直接Ctrl+c那么就等于说录入的是null;那么fwout输出的也是null,服务器读取的也是null
break;
fwout.println(line);
String infos=brin.readLine();
if(infos.contains("欢迎登陆"))//如果服务器返回的信息中包含"欢迎登陆"字样,就跳出循环关
break;
System.out.println(infos);
}
s.close();
br.close();
}
}
class UserThread implements Runnable
{
private Socket s;
UserThread(Socket s)
{
this.s=s;
}
public void run()
{
String ip=s.getInetAddress().getHostAddress();
System.out.println(ip+"正在尝试登陆");
try
{
for(int i=0;i<3;i++)
{
BufferedReader brin=new BufferedReader(new InputStreamReader(s.getInputStream()));
String infos=brin.readLine();
if(infos==null)
break;
BufferedReader br=new BufferedReader(new FileReader("User.txt"));
PrintWriter pwout=new PrintWriter(s.getOutputStream(),true);
String name=null;
boolean num=false;
while((name=br.readLine())!=null)
{
if(name.equals(infos))
{
num=true;
break;
}
}
if(num)
{
System.out.println(infos+"登陆成功");
pwout.println(infos+"欢迎登陆");
break;
}
else
{
System.out.println(infos+"登陆失败");
pwout.println("用户名不存在");
}
}
s.close();
//br.close();
}
catch (Exception e)
{
}
}
}
class UserServer
{
public static void main(String[] ages) throws Exception
{
ServerSocket ss=new ServerSocket(8888);
while(true)
{
Socket s=ss.accept();
new Thread(new UserThread(s)).start();
}
}
}