socketconnector.java

来自「是离开的肌肤了卡机是离开的就富利卡及是了的开发及拉考试及的福利科技阿斯利康的肌肤」· Java 代码 · 共 89 行

JAVA
89
字号
//========================================================================//Copyright 2006-2007 Mort Bay Consulting Pty. Ltd.//------------------------------------------------------------------------//Licensed under the Apache License, Version 2.0 (the "License");//you may not use this file except in compliance with the License.//You may obtain a copy of the License at//http://www.apache.org/licenses/LICENSE-2.0//Unless required by applicable law or agreed to in writing, software//distributed under the License is distributed on an "AS IS" BASIS,//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.//See the License for the specific language governing permissions and//limitations under the License.//========================================================================package org.mortbay.jetty.client;import java.io.IOException;import java.io.InterruptedIOException;import java.net.Socket;import javax.net.SocketFactory;import javax.net.ssl.SSLContext;import org.mortbay.component.AbstractLifeCycle;import org.mortbay.io.EndPoint;import org.mortbay.io.bio.SocketEndPoint;import org.mortbay.log.Log;class SocketConnector extends AbstractLifeCycle implements HttpClient.Connector{    /**     *      */    private final HttpClient _httpClient;    /**     * @param httpClient     */    SocketConnector(HttpClient httpClient)    {        _httpClient = httpClient;    }    public void startConnection(final HttpDestination destination) throws IOException    {        Socket socket=null;                if ( destination.isSecure() )        {            SSLContext sslContext = _httpClient.getSSLContext();            socket = sslContext.getSocketFactory().createSocket();        }        else        {            Log.debug("Using Regular Socket");            socket = SocketFactory.getDefault().createSocket();                        }               Address address = destination.isProxied() ? destination.getProxy() : destination.getAddress();        socket.connect(address.toSocketAddress());                EndPoint endpoint=new SocketEndPoint(socket);                final HttpConnection connection=new HttpConnection(_httpClient,endpoint,_httpClient.getHeaderBufferSize(),_httpClient.getRequestBufferSize());        connection.setDestination(destination);        destination.onNewConnection(connection);        _httpClient.getThreadPool().dispatch(new Runnable()        {            public void run()            {                try                {                    connection.handle();                }                catch (IOException e)                {                    if (e instanceof InterruptedIOException)                        Log.ignore(e);                    else                    {                        Log.warn(e);                        destination.onException(e);                    }                }            }        });                 }}

⌨️ 快捷键说明

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