//客户端:
package 用户端服务器端登录验证;
import java.net.*;
import java.io.*;
class LoginClient
{
public static void main(String[] args)throws Exception
{
Socket s = new Socket("10.0.185.126",8888);
//读取键盘录入,获取用户名。
BufferedReader bufr =
new BufferedReader(new InputStreamReader(System.in));
//对socket输出流进行打印。将录入的用户名发送给服务端。
PrintWriter out = new PrintWriter(s.getOutputStream(),true);
//对socket输入流中的数据进行获取,其实就是在获取服务端的回馈信息。
BufferedReader in =
new BufferedReader(new InputStreamReader(s.getInputStream()));
//客户端值允许录入三次。
for(int x=0; x<3; x++)
{
//从键盘读取一行。
String username = bufr.readLine();
if(username==null)
{
//s.shutdownOutput();
break;
}
//将该行数据打印到socket输出流。
out.println(username);
//获取服务端反馈信息。
String info = in.readLine();
System.out.println(info);
if(info.contains("欢迎"))
break;
}
bufr.close();
s.close();
}
}
//服务器端(主函数):
package 用户端服务器端登录验证;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
class LoginServer
{
public static void main(String[] args) throws Exception
{
ServerSocket ss = new ServerSocket(8888);
while(true)
{
Socket s = ss.accept();
System.out.println(s.getInetAddress().getHostAddress()+".....connected");
new Thread(new UserThread(s)).start();
}
}
}
class UserThread implements Runnable
{
private Socket s;
UserThread(Socket s)
{
this.s = s;
}
public void run()
{
try
{
for(int x=0; x<3; x++)
{
//判断用户名是否为空
BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
String name = bufIn.readLine();
if(name==null)
{
System.out.println("程序结束 ");
break;
}
//匹配用户名并实现登陆
BufferedReader bufr = new BufferedReader(new FileReader("E:\\Eclipse\\Users\\workspace\\Self\\src\\用户端服务器端登录验证\\user.txt"));
String line = null;
PrintWriter out = new PrintWriter(s.getOutputStream(),true);
boolean b = false;
while((line=bufr.readLine())!=null)
{
if(line.equals(name))
{
b = true;
break;
};
}
if(b)
{
System.out.println(name+"已登录");
out.println(name+",欢迎光临");
}
else
{
System.out.println(name+"尝试登录");
out.println(name+",用户不存在");
}
}
}
catch (Exception e)
{
System.out.println(e.toString());
}
finally
{
try
{
if( s!=null)
s.close();
}
catch (Exception e)
{
System.out.println("close:"+e.toString());
}
}
}
}
user.txt
例:
lisi
admin
李四