📄 client.java
字号:
import java.net.Socket;
import javax.swing.JProgressBar;
import java.util.*;
import java.io.*;
public class Client{
private int port;
private String borrowerId;
public Client(String id,int port){
this.borrowerId=id;
this.port=port;
}
private Socket connect(){
try{
System.out.println("connecting");
Socket s=new Socket("localhost",port);
System.out.println("connection done");
return s;
}catch(Exception e){
e.printStackTrace();
throw new RuntimeException();
}
}
public String negotiateId(String id){
return negotiate(new Request(id,Request.AUTHEN));
}
public String negotiateBook(int type,List books){
return negotiate(new Request(borrowerId,type,books));
}
public String negotiateChloan(){
return negotiate(new Request(borrowerId,Request.CHECKLOAN));
}
private String negotiate(Request req){
Socket s=connect();
if(s==null)
return "connection fail";
try{
ObjectOutputStream oos=new ObjectOutputStream(s.getOutputStream());
ObjectInputStream ois=new ObjectInputStream(s.getInputStream());
System.out.println("sending request");
oos.writeObject(req);
oos.flush();
System.out.println("waiting response");
Response resp=(Response)ois.readObject();
System.out.println("receive response");
System.out.println("terminating connection");
s.close();
return resp.toString();
}catch(Exception e){
e.printStackTrace();
throw new RuntimeException();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -