icpreply.java
来自「很棒的web服务器源代码」· Java 代码 · 共 82 行
JAVA
82 行
// ICPReply.java// $Id: ICPReply.java,v 1.3 2000/08/16 21:38:04 ylafon Exp $// (c) COPYRIGHT MIT and INRIA, 1996.// please first read the full copyright statement in file COPYRIGHT.HTMLpackage org.w3c.www.protocol.http.icp;import java.net.InetAddress;import java.net.MalformedURLException;import java.net.URL;class ICPReply extends ICPMessage { protected int getByteArrayLength() { return (super.getByteArrayLength() + ((url == null) ? 0 : url.toExternalForm().length()) + 1); } protected int toByteArray(byte buf[]) { int off = super.getByteArrayLength(); String strurl = (url == null) ? null : url.toExternalForm(); int urllen = ((strurl == null) ? 0 : strurl.length()); // Encode generic payload infos: super.toByteArray(buf); // Encode the URL (null terminated string): if ( urllen > 0 ) strurl.getBytes(0, urllen, buf, off); buf[off+urllen] = 0; return off+urllen+1; } protected int parse(byte buf[], int off, int len) throws ICPProtocolException { off = super.parse(buf, off, len); // Read in the URL: for (int i = off ; i < len ; i++) { if (buf[i] == 0) { // Is there a real URL ? if ( i - off < 1 ) return i; // Yep, parse it: String strurl = new String(buf, 0, off, i-off); try { this.url = new URL(strurl); } catch (MalformedURLException ex) { throw new ICPProtocolException("Invalid URL:"+strurl); } return i; } } throw new ICPProtocolException("Invalid URL encoding"); } /** * Does this reply indicates a hit on the requested URL ? * @return A boolean <strong>true</strong> if this reply was a hit. */ public final boolean isHit() { return (opcode == ICP_OP_HIT); } ICPReply(InetAddress addr, int port , int opcode, int version , byte buf[], int off, int len) throws ICPProtocolException { this.addr = addr; this.port = port; this.opcode = opcode; this.version = version; parse(buf, off, len); } ICPReply(int id, int opcode) { this.id = id; this.opcode = opcode; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?