📄 signatureserver.java
字号:
import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.IOException;import java.net.Socket;import java.net.ServerSocket;public class SignatureServer { private int port = 1923; private ServerSocket serverSocket; class ServerThread implements Runnable { private Socket socket; private DataInputStream datain; private DataOutputStream dataout; public ServerThread(Socket socket) { this.socket = socket; } public void run() { try { datain = new DataInputStream(new BufferedInputStream (socket.getInputStream())); dataout = new DataOutputStream(new BufferedOutputStream (socket.getOutputStream())); } catch (IOException e) { return; } byte[] ba = new byte[6]; boolean conversationActive = true; while(conversationActive) { String name = null; try { datain.read(ba,0,6); name = new String(ba); if (name.toUpperCase().charAt(0) == '$') { conversationActive = false; } else { System.out.println("verifying signature for = " + name); byte[] ia = getImage("ptremblett.png"); String sl = Integer.toString(ia.length) + "\n";System.out.println("sending length = " + sl); dataout.write(sl.getBytes(),0,sl.length()); dataout.flush();System.out.println("sending " + ia.length + " bytes"); dataout.write(ia,0,ia.length); dataout.flush();System.out.println("signature sent"); } } catch (IOException ioe) { conversationActive = false; } } try { System.out.println("closing socket"); datain.close(); dataout.close(); socket.close(); } catch (IOException e) { } } private byte[] getImage(String fname) { byte[] ba = new byte[0]; try { File f = new File(fname); ba = new byte[(int)f.length()]; BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f)); int nb = bis.read(ba,0,ba.length);System.out.println("nb = " + nb); bis.close(); } catch (IOException e) { } finally { return ba; } } } public void acceptConnections() { try { serverSocket = new ServerSocket(1921); } catch (IOException e) { System.err.println("ServerSocket instantiation failure"); e.printStackTrace(); System.exit(0); } while (true) { try { Socket newConnection = serverSocket.accept(); System.out.println("accepted connection"); ServerThread st = new ServerThread(newConnection); new Thread(st).start(); } catch (IOException ioe) { System.err.println("server accept failed"); } } } public static void main(String args[]) { SignatureServer server = new SignatureServer(); server.acceptConnections(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -