⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 client.java

📁 线程通信
💻 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 + -