课堂案例
注册 登录系统:
Server:
package day34.t1;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Properties;
public class Server {
private Properties userPros;
public Server(){
userPros = new Properties();
File file = new File(“Files\userPros.properties”);
if(file.exists()){
try {
userPros.load(new FileReader(file));
} catch (Exception e) {
e.printStackTrace();
}
}
}
// 注册
public void registerUser() {
try {
ServerSocket server = new ServerSocket(6666);
System.out.println("注册线程已启动");
while(true){
Socket client = server.accept();
//将客户端对象和配置文件传给注册线程
RegThread reg = new RegThread(userPros,client);
reg.start();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void login(){
try {
ServerSocket server = new ServerSocket(7777);
System.out.println("登录线程启动");
while(true){
Socket client = server.accept();
LoginThread lt = new LoginThread(userPros,client);
lt.start();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
RegThread
package day34.t1;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.Socket;
import java.util.Properties;
public class RegThread extends Thread {
private Properties userPros;
private Socket client;
public RegThread(Properties userPros,Socket client){
this.client=client;
this.userPros=userPros;
}
public void run(){
try {
InputStream is = client.getInputStream();
InputStreamReader isr = new InputStreamReader(is,"UTF-8");
BufferedReader br = new BufferedReader(isr);
OutputStream os = client.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os,"UTF-8");
PrintWriter pw = new PrintWriter(osw);
//获得用户提交的数据
String userinfo = br.readLine();
String[] users = userinfo.split("#");
String username = users[0];
String password = users[1];
//校对数据
if(userPros.containsKey(username)){
pw.println("用户已存在,请重新输入");
pw.flush();
}else{
userPros.setProperty(username, password);
userPros.store(new FileWriter("Files\\userPros.properties"), "用户信息"