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

📄 server.java

📁 《JAVA分布式程序设计》一书的源代码。
💻 JAVA
字号:
import java.io.*;import java.net.*;import java.security.*;/** * @(#)Server.java * @author Qusay H. Mahmoud */public class Server implements Cloneable, Runnable {   ServerSocket service = null;   Socket clientSocket = null;   ObjectInputStream ois = null;   Thread worker = null;   KeyPairGenerator kgen;   KeyPair kpair;   public static void main(String argv[]) throws IOException {      Server serv = new Server();      serv.startServer();   }              public synchronized void startServer() throws IOException {      if (worker == null) {	service = new ServerSocket(4000);        worker = new Thread(this);	worker.start();      }   }   public void run() {     Socket client = null;     if (service != null) { // original or clone?       while(true) {         try {           client = service.accept();	   Server newServer = (Server) clone();	   newServer.service = null;	   newServer.clientSocket = client;	   newServer.worker = new Thread(newServer);	   newServer.worker.start();	 } catch(IOException e) {	   e.printStackTrace();	 } catch(CloneNotSupportedException e) {	  e.printStackTrace();         }       }     } else {         perform(clientSocket);     }          }   private void perform(Socket client) {     try {       ois = new ObjectInputStream(clientSocket.getInputStream());       // read object from client       SignedObject obj = (SignedObject) ois.readObject();       // generate object's signature       Signature sig = Signature.getInstance("SHA/DSA");       sig.initVerify(obj.pub);       sig.update(obj.b);              // verify the signature       boolean valid = sig.verify(obj.sig);       if (valid) {         System.out.println("Signature is valid");       } else {         System.out.println("Signature is not valid .... spy");       }     } catch(Exception e) {       e.printStackTrace();     }     // close streams and connection     try {       ois.close();       clientSocket.close();     }      catch(IOException ex) {        ex.printStackTrace();     }   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -