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();
}
}