1 package netTest;
2
3 import java.io.BufferedReader;
4 import java.io.FileReader;
5 import java.io.IOException;
6 import java.io.InputStreamReader;
7 import java.io.PrintWriter;
8 import java.net.ServerSocket;
9 import java.net.Socket;
10
11 public class LoginServer {
12
13 public static void main(String[] args) throws Exception {
14 // TODO Auto-generated method stub
15 ServerSocket ss = new ServerSocket(10003);
16 // 或取多个客户端需要用到线程
17 while(true){
18 Socket s = ss.accept();
19 new Thread(new UserThread(s)).start();
20 }
21 }
22
23 }
24 class UserThread implements Runnable {
25 private Socket s;
26 UserThread(Socket s){
27 this.s = s;
28 }
29 @Override
30 public void run() {
31 // TODO Auto-generated method stub
32 try{
33 for(int x = 0;x<3;x++){
34 BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
35 String name = bufIn.readLine();
36 if(name == null){
37 break;
38 }
39 BufferedReader bufr = new BufferedReader(new FileReader("user.txt"));
40 PrintWriter out = new PrintWriter(s.getOutputStream(),true);
41 String line = null;
42 boolean flag = false;
43 while((line = bufr.readLine())!=null){
44 if(line.equals(name)){
45 flag = true;
46 break;
47 }
48 }
49 if(flag){
50 System.out.println(name+",已登录");
51 out.println(name+"欢迎光临");
52 break;
53 }
54 else{
55 System.out.println(name+",尝试登录");
56 out.println(name+"用户名不存在。");
57 }
58 }
59 s.close();
60 }
61 catch(Exception e){
62 e.printStackTrace();
63 }
64 }
65
66 }
67
68 package netTest;
69
70 import java.io.BufferedReader;
71 import java.io.IOException;
72 import java.io.InputStreamReader;
73 import java.io.PrintWriter;
74 import java.net.InetAddress;
75 import java.net.Socket;
76 import java.net.UnknownHostException;
77
78 /*
79 * 只能校验三次。
80 *
81 */
82 public class LoginClient {
83 public static void main(String[] args) throws Exception, Exception {
84 // TODO Auto-generated method stub
85 //1.建立端点
86 Socket s = new Socket(InetAddress.getLocalHost(), 10003);
87 //2.组织数据(先写输入输出流 )
88 BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
89 PrintWriter out = new PrintWriter(s.getOutputStream(),true);
90 BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
91 //只能发送三次
92 for(int x = 0;x<3;x++){
93 String line = bufr.readLine();
94 if(line == null){
95 break;
96 }
97
98 out.println(line);
99 String info = bufIn.readLine();
100 System.out.println("info:"+info);
101 if(info.contains("欢迎")){
102 break;
103 }
104
105 }
106 bufr.close();
107 s.close();
108 }
109 }