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

📄 muxclient.java

📁 很棒的web服务器源代码
💻 JAVA
字号:
// MuxClient.java// $Id: MuxClient.java,v 1.6 2000/08/16 21:37:42 ylafon Exp $// (c) COPYRIGHT MIT and INRIA, 1996.// Please first read the full copyright statement in file COPYRIGHT.htmlpackage org.w3c.jigsaw.http.mux ;import java.io.BufferedOutputStream;import java.io.DataOutputStream;import java.io.IOException;import java.io.PrintStream;import java.net.InetAddress;import org.w3c.www.mux.MuxSession;import org.w3c.www.http.HttpMessage;import org.w3c.jigsaw.http.Client;import org.w3c.jigsaw.http.Reply;import org.w3c.jigsaw.http.Request;import org.w3c.jigsaw.http.httpd;public class MuxClient extends Client implements Runnable {    /**     * The InetAddress of the session we are currently handling.     */    private InetAddress addr   = null;    /**     * The MuxSession we are currently handling.     */    private MuxSession session   = null;    /**     * The MuxHttpHandler that createed us.     */    private MuxHttpHandler handler = null;    /**     * MuxHttpHandler maintained klist of clients.     */    MuxClient next = null;    /**     * The thread powering that client connection.     */    protected Thread thread = null;    protected boolean tryKeepConnection (Request request, Reply reply) {	reply.addConnection("close");	return false;    }    /**     * Client implementation - Get the IP address of this client.     * @return An InetAddress instance, or <strong>null</strong> if the     * client is not currently running.     */    public InetAddress getInetAddress() {	return addr;    }    /**     * Run HTTP on the newly created mux session.     */    public void run() {	try {	    startConnection(session.getInputStream()			    , (new DataOutputStream			       (new BufferedOutputStream				(session.getOutputStream()))));	} catch (Exception ex) {	    System.out.println(this+": erred !");	    ex.printStackTrace();	}    }	    /**     * Client implementation - The current connection is now idle.     * We always close the mux session at that time, since creating a new     * mux session has nearly no overhead.     */    protected boolean idleConnection() {	return true;    }    /**     * Client implementation - The current connection is now in use.     * Nothing special done.     */    protected void usedConnection() {	return;    }    /**     * Client implementation - The current connection was terminated.     * We make sure the underlying mux session is closed properly, and      * terminate the underlying thread.     */    protected void stopConnection() {	// Terminate the session properly:	try {	    session.shutdown();	} catch (IOException ex) {	    ex.printStackTrace();	}	session = null;	// Mark that MuxClient instance ready for re-used.	handler.markIdle(this);    }    /**     * Bind that client to the given connection.     * @param session The mux session to handle.     */    protected void bind(MuxSession session) 	throws IOException    {	this.session = session;	this.addr    = session.getInetAddress();    }    /**     * Get the thread powering that client.     * @return A Thread instance, or <strong>null</strong>.     */    protected Thread getThread() {	return thread;    }    MuxClient(httpd server, MuxHttpHandler handler, int identifier) {	initialize(server, identifier);	this.handler = handler;    }}

⌨️ 快捷键说明

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