📄 atmserver.java
字号:
import java.net.*;
import java.io.*;
public class ATMServer{
private ServerSocket server;
private Socket s;
/*public static void main(String args[]){
ATMServer server=new ATMServer();
}*/
public ATMServer(){
try{
server=new ServerSocket(5555);
s=null;
System.out.print("服务器启动"+"\n");
}catch(IOException e){}
Listen();
}
private void Listen(){
while(true){
try{
s=server.accept();
ServerThread st=new ServerThread(s);
System.out.print("侦听到远程连接!"+"\n");
new Thread(st).start();
System.out.print("建立独立线程并开始运行"+"\n");
}catch(IOException e){}
}
}
}
class ServerThread implements Runnable{
private Socket s;
private DataOutputStream dout;
private DataInputStream din;
private String ATMnum;
public ServerThread(Socket s){
this.s=s;
try{
dout=new DataOutputStream(s.getOutputStream());
din=new DataInputStream(s.getInputStream());
}catch(IOException e){}
}
public void run(){
ATMnum=getString();
System.out.print("ATM号:"+ATMnum+"\n");
while(true){//等待用户插卡操作
System.out.print("等待插卡......\n");
String ID=getString();
System.out.print("接受到用户卡号"+ID+"\n");
Employer account=new Employer(ATMnum);
int check=account.IsAccountExsit(ID);
if(check==1){
sendString("true");
}
else{
sendString("false");
continue;
}
String password=getString();
int i=0;
while(i<3){
boolean c=account.checkPassWordCustomer(password);
if(c==true){
sendString("true");
break;
}
else{
sendString("false");
i++;
System.out.print("第"+i+"次密码错误!!\n");
if(i!=3) password=getString();
}
}
if(i==3) continue;
System.out.print("接受到用户密码"+password+"\n");
while(true){//等待用户发送操作命令
System.out.print("等待用户操作......\n");
String command=getString();
System.out.print("接受到命令:"+command+"\n");
if(command.equals("Query")){
String cash=String.valueOf(account.getMoney());
sendString(cash);
System.out.print("用户查询金额为"+cash+"\n");
command="";
}
if(command.equals("Draw")){
String str=getString();
float draw=Float.parseFloat(str);
int ch=account.ATMDraw(draw);
System.out.print("用户要求取款金额"+str+" 操作返回值"+ch+"\n");
sendInt(ch);
command="";
}
if(command.equals("ChangePassWord")){
String newPassword=getString();
account.changePassWordCustomer(newPassword);
System.out.print("用户修改密码为"+newPassword+"\n");
sendString("true");
command="";
}
if(command.equals("MoveMoney")){
String nextID=getString();
float money=Float.parseFloat(getString());
int k=account.moveMoney(nextID,money);
sendInt(k);
command="";
System.out.print("用户转帐金额"+money+"目标ID"+nextID+"操作返回"+k+"\n");
}
if(command.equals("Quit")){//结束操作,进入下一等待状态
command="";
System.out.print("用户退卡结束操作\n");
break;
}
}
}
}
public String getString(){
String str=null;
try{
str=din.readUTF();
}catch(IOException e){}
return str;
}
public void sendString(String str){
try{
dout.writeUTF(str);
}catch(IOException e){}
}
public void sendInt(int ch){
try{
dout.writeInt(ch);
}catch(IOException e){}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -