📄 catm.java
字号:
//CIBC的客户机ATM
import java.net.*;
import java.io.*;
class CATMthread extends Thread{
public CATMthread(Socket s){
this.s=s;
}
public void run(){
try{
OutputStream osci=s.getOutputStream();
PrintWriter outci=new PrintWriter(osci,true); //向CIBC的输出流
InputStream isci=s.getInputStream();
BufferedReader brci=new BufferedReader(new InputStreamReader(isci)); //接收CIBC的输入流
InputStream isatm=s.getInputStream();
BufferedReader bratm=new BufferedReader(new InputStreamReader(System.in)); //接收客户ATM的输入流
OutputStream osatm=s.getOutputStream();
PrintWriter outatm=new PrintWriter(osatm,true); //客户机ATM的输出流
String line=null;
String idci=null;
String psdci=null;
String idatm=null;
String psdatm=null;
boolean stopFlag1=false;
boolean stopFlag2=false;
boolean stopFlag3=false;
int count=0;
while(!stopFlag1){ //验证用户身份
System.out.println("请输入用户名:");
idatm=bratm.readLine(); //接收ID
outci.println(idatm);
idci=brci.readLine();
if(idci.equals("error")){
System.out.println("用户名不存在,请重试.\n您最多可以试5次");
count++;
if(count==5) break;
}
else if(idci.equals("ok")){
count=0;
stopFlag2=true;
break;
}
}
while(stopFlag2){ //检验用户密码
System.out.println("请输入密码:");
psdatm=bratm.readLine(); //接收用户密码
outci.println(psdatm);
psdci=brci.readLine();
if(psdci.equals("error")){
System.out.println("密码错误,请重试.\n您最多可以试5次");
count++;
if(count==5) break;
}
else if(psdci.equals("ok")){
System.out.println("请继续");
count=0;
stopFlag3=true;
break;
}
}
while(stopFlag3){ //用户操作
System.out.println("请选择:1,存款 2,取款 3查询余额 4,退出");
line=bratm.readLine();
if(line.equals("1")){
System.out.println("请输入存款金额:");
line=bratm.readLine();
outci.println("01".concat(line));
if((brci.readLine()).equals("01")){
System.out.println("操作成功");
}
}
else if(line.equals("2")){
System.out.println("请输入取款金额:");
line=bratm.readLine();
outci.println("02".concat(line));
if((brci.readLine()).equals("02")){
System.out.println("操作成功");
}
}
else if(line.equals("3")){
outci.println("03");
System.out.println(brci.readLine());
}
else if(line.equals("4")){
outci.println("04");
if((brci.readLine()).equals("04")){
break;
}
}
else{
if((brci.readLine()).equals("00")){
System.out.println("无效,请重新输入");
}
}
}
s.close();
outatm.close();
osatm.close();
isatm.close();
bratm.close();
brci.close();
isci.close();
outci.close();
osci.close();
}
catch(Exception e){
}
}
private Socket s=null;
}
public class CATM{
public static void main(String[] args)throws Exception{
InetAddress ia=InetAddress.getLocalHost();
int port=2222;
Socket s=new Socket(ia,port);
boolean stopFlag=false;
OutputStream oss=s.getOutputStream();
PrintWriter outs=new PrintWriter(oss,true);
outs.println("CIBC-ATM"); //向CIBC报到
InputStream iss=s.getInputStream();
BufferedReader brs=new BufferedReader(new InputStreamReader(iss));
if(brs.readLine().equals("start")){
CATMthread ct=new CATMthread(s);
ct.start();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -