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;
/**
*
*@author lenovo
*/
public class Server {
public static void main(String[] args) throws Exception{
ServerSocket ss=new ServerSocket(10100);
while (true){
Socket s=ss.accept();
new Thread(new DenLu(s)).start();
}
}
}
class DenLu implements Runnable{
private Socket s;
DenLu(Socket s){
this.s=s;
}
public void run (){
System.out.println(s.getInetAddress().getHostAddress()+"...connected");
try{
for (int x=0;x<3;x++){
BufferedReader bufr=new BufferedReader(new FileReader("D:\\username.txt"));
BufferedReader bufIn=new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter out=new PrintWriter(s.getOutputStream(),true);
String name=bufIn.readLine();
if (name==null)
break;
String line=null;
boolean flag=false;
while((line=bufr.readLine())!=null){
if (line.equals(name)){
flag=true;
break;
}
}
if(flag){
System.out.println(name+"用户已登录");
out.println(name+"欢迎登录");
break;
}
else{
System.out.println(name+"尝试登录");
out.println(name+"登录失败");
}
bufr.close();
s.close();
}
}
catch(Exception e){
throw new RuntimeException(s.getInetAddress().getHostAddress()+"校验失败");
}
}
}
|
|