黑馬程序員——Tomcat服務器原理的小例子

package day23;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

/*
 * 客戶端通過鍵盤錄入用戶名,服務端對這個用戶名進行校驗。
 * 如果該用戶名存在,在服務端顯示 xxx,已登錄
 * 並在客戶端顯示 xxx歡迎光臨
 *
 * 如果該用戶不存在,在服務端顯示xxx,嘗試登錄。
 * 並在客戶端顯示xxx,該用戶不存在。
 *
 * 最多登錄三次*/
public class ClientSocket {
 public static void main(String[] args)throws Exception {
  Socket s = new Socket("192.168.1.100",11100);
  //讀取鍵盤錄入
  BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
  //發送給服務端
  PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
  //讀取服務端返回的信息
  BufferedReader bufIn =
    new BufferedReader(new InputStreamReader(s.getInputStream()));
  //讀取一行
  String line = null;
  for(int i = 0;i<3;i++){
   line = bufr.readLine();
   if(line == null)
    break;
   pw.println(line);
   String str = bufIn.readLine();
   System.out.println(str);
  }
  bufIn.close();
  bufr.close();
  
 }

}

 

 

 

package day23;

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 LogUser implements Runnable{
 private Socket s;
 LogUser(Socket s){
  this.s = s;
 }
 @Override
 public void run() {
  String ip = s.getInetAddress().getHostAddress();
  try {
   for(int i=0;i<3;i++){
   // if(s.getInputStream().available()>0){
    BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
    BufferedReader bufr = new BufferedReader(new FileReader("C:\\user.txt"));
    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;
     }
    }
    if(flag){
     System.out.println(name+"已登錄");
     out.println(name+"歡迎光臨");
     break;
    }
    else{
     System.out.println(name+"嘗試登錄");
     out.println(name+"未註冊");
    }
   }
   //out.close();
   s.close();
   //} 
  } catch (Exception e) {
   throw new RuntimeException(ip+"校驗失敗");
  }
 }
}

public class ServerLogin {
 public static void main(String[] args) throws Exception{
  ServerSocket ss = new ServerSocket(11100);
     Socket s = ss.accept();
     new Thread(new LogUser(s)).start();
 }

}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章