当前位置: 首页>>代码示例>>Java>>正文


Java Socket.bind方法代码示例

本文整理汇总了Java中java.net.Socket.bind方法的典型用法代码示例。如果您正苦于以下问题:Java Socket.bind方法的具体用法?Java Socket.bind怎么用?Java Socket.bind使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在java.net.Socket的用法示例。


在下文中一共展示了Socket.bind方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: createSocket

import java.net.Socket; //导入方法依赖的package包/类
/**
 * Attempts to get a new socket connection to the given host within the given time limit.
 * <p>
 * To circumvent the limitations of older JREs that do not support connect timeout a 
 * controller thread is executed. The controller thread attempts to create a new socket 
 * within the given limit of time. If socket constructor does not return until the 
 * timeout expires, the controller terminates and throws an {@link ConnectTimeoutException}
 * </p>
 *  
 * @param host the host name/IP
 * @param port the port on the host
 * @param clientHost the local host name/IP to bind the socket to
 * @param clientPort the port on the local machine
 * @param params {@link HttpConnectionParams Http connection parameters}
 * 
 * @return Socket a new socket
 * 
 * @throws IOException if an I/O error occurs while creating the socket
 * @throws UnknownHostException if the IP address of the host cannot be
 * determined
 */
public Socket createSocket(
    final String host,
    final int port,
    final InetAddress localAddress,
    final int localPort,
    final HttpConnectionParams params
) throws IOException, UnknownHostException, ConnectTimeoutException {
    if (params == null) {
        throw new IllegalArgumentException("Parameters may not be null");
    }
    int timeout = params.getConnectionTimeout();
    SocketFactory socketfactory = getSSLContext().getSocketFactory();
    if (timeout == 0) {
        return socketfactory.createSocket(host, port, localAddress, localPort);
    } else {
        Socket socket = socketfactory.createSocket();
        SocketAddress localaddr = new InetSocketAddress(localAddress, localPort);
        SocketAddress remoteaddr = new InetSocketAddress(host, port);
        socket.bind(localaddr);
        socket.connect(remoteaddr, timeout);
        return socket;
    }
}
 
开发者ID:jenkinsci,项目名称:lib-commons-httpclient,代码行数:45,代码来源:AuthSSLProtocolSocketFactory.java

示例2: testAvoidLoopbackTcpSockets

import java.net.Socket; //导入方法依赖的package包/类
/**
 * Test that we can't accidentally connect back to the connecting socket due
 * to a quirk in the TCP spec.
 *
 * This is a regression test for HADOOP-6722.
 */
@Test
public void testAvoidLoopbackTcpSockets() throws Exception {
  Configuration conf = new Configuration();

  Socket socket = NetUtils.getDefaultSocketFactory(conf)
    .createSocket();
  socket.bind(new InetSocketAddress("127.0.0.1", 0));
  System.err.println("local address: " + socket.getLocalAddress());
  System.err.println("local port: " + socket.getLocalPort());
  try {
    NetUtils.connect(socket,
      new InetSocketAddress(socket.getLocalAddress(), socket.getLocalPort()),
      20000);
    socket.close();
    fail("Should not have connected");
  } catch (ConnectException ce) {
    System.err.println("Got exception: " + ce);
    assertTrue(ce.getMessage().contains("resulted in a loopback"));
  } catch (SocketException se) {
    // Some TCP stacks will actually throw their own Invalid argument exception
    // here. This is also OK.
    assertTrue(se.getMessage().contains("Invalid argument"));
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:31,代码来源:TestNetUtils.java

示例3: connectSocket

import java.net.Socket; //导入方法依赖的package包/类
@Override
public Socket connectSocket(
        final int connectTimeout,
        final Socket socket, final HttpHost host,
        final InetSocketAddress remoteAddress,
        final InetSocketAddress localAddress,
        final HttpContext context
) throws IOException {
    Socket socket0 = socket != null ? socket : createSocket(context);
    if (localAddress != null) {
        socket0.bind(localAddress);
    }
    try {
        socket0.connect(remoteAddress, connectTimeout);
    } catch (SocketTimeoutException e) {
        throw new ConnectTimeoutException(e, host, remoteAddress.getAddress());
    }
    return socket0;
}
 
开发者ID:ZhangJiupeng,项目名称:Gospy,代码行数:20,代码来源:HttpFetcher.java

示例4: createSocket

import java.net.Socket; //导入方法依赖的package包/类
/**
 * Attempts to get a new socket connection to the given host within the
 * given time limit.
 * <p>
 * To circumvent the limitations of older JREs that do not support connect
 * timeout a controller thread is executed. The controller thread attempts
 * to create a new socket within the given limit of time. If socket
 * constructor does not return until the timeout expires, the controller
 * terminates and throws an {@link ConnectTimeoutException}
 * </p>
 * 
 * @param host the host name/IP
 * @param port the port on the host
 * @param clientHost the local host name/IP to bind the socket to
 * @param clientPort the port on the local machine
 * @param params {@link HttpConnectionParams Http connection parameters}
 * @return Socket a new socket
 * @throws IOException if an I/O error occurs while creating the socket
 * @throws UnknownHostException if the IP address of the host cannot be
 *             determined
 */
@Override
public Socket createSocket(final String host, final int port, final InetAddress localAddress, final int localPort,
	final HttpConnectionParams params) throws IOException, UnknownHostException, ConnectTimeoutException
{
	if( params == null )
	{
		throw new IllegalArgumentException("Parameters may not be null");
	}
	int timeout = params.getConnectionTimeout();
	SocketFactory socketfactory = getSSLContext().getSocketFactory();
	if( timeout == 0 )
	{
		return socketfactory.createSocket(host, port, localAddress, localPort);
	}
	else
	{
		Socket socket = socketfactory.createSocket();
		SocketAddress localaddr = new InetSocketAddress(localAddress, localPort);
		SocketAddress remoteaddr = new InetSocketAddress(host, port);
		socket.bind(localaddr);
		socket.connect(remoteaddr, timeout);
		return socket;
	}
}
 
开发者ID:equella,项目名称:Equella,代码行数:46,代码来源:EasySSLProtocolSocketFactory.java

示例5: createSocket

import java.net.Socket; //导入方法依赖的package包/类
public Socket createSocket(
        String host, 
        int port, InetAddress localAddress, int localPort,
        HttpConnectionParams params) throws IOException, UnknownHostException,
        ConnectTimeoutException {
    // Based on code from EasySSLProtocolSocketFactory.java
    Socket rval;
    if (params == null) {
        throw new IllegalArgumentException("Parameters may not be null");
    }
    int timeout = params.getConnectionTimeout();
    if (timeout == 0) {
        rval = socketFactory.createSocket(host, port, localAddress, localPort);
    } else {
        rval = socketFactory.createSocket();
        SocketAddress localaddr = new InetSocketAddress(localAddress, localPort);
        SocketAddress remoteaddr = new InetSocketAddress(host, port);
        rval.bind(localaddr);
        rval.connect(remoteaddr, timeout);
    }
    return rval;
}
 
开发者ID:jenkinsci,项目名称:lib-commons-httpclient,代码行数:23,代码来源:SocketFactoryWrapper.java

示例6: run

import java.net.Socket; //导入方法依赖的package包/类
@Override
public void run() {
    Log.d(TAG,"run");
    Socket socket = new Socket();
    try {
        /*
        note: setReuseAddress
        When closing a TCP connection, the connection may stay in a time-out state (usually
        referred to as TIME_WAIT state or 2 MSL wait state) for a period of time after the
        close of the connection. For applications that use the well-known socket address or port,
        sockets associated with a socket address or port may be unable to bind to the required
        SocketAddress if it is in the timeout state.
         */
        InetSocketAddress addr = new InetSocketAddress(mAddress.getHostAddress(),WiFiDirectCommunicator.PORT);
        socket.bind(null);
        socket.setReuseAddress(true);
        socket.connect(addr,WiFiDirectCommunicator.TIMEOUT);
        Log.d(TAG, "Launching the I/O handler");
        manager = new CommManager(socket, handler);
        new Thread(manager).start();
    } catch (IOException e) {
        e.printStackTrace();
        try {
            socket.close();
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        return;
    }
}
 
开发者ID:jphacks,项目名称:TK_1701,代码行数:31,代码来源:ClientSocketHandler.java

示例7: createSocket

import java.net.Socket; //导入方法依赖的package包/类
@Override
public Socket createSocket(InetAddress addr, int port,
    InetAddress localHostAddr, int localPort) throws IOException {

  Socket socket = createSocket();
  socket.bind(new InetSocketAddress(localHostAddr, localPort));
  socket.connect(new InetSocketAddress(addr, port));
  return socket;
}
 
开发者ID:nucypher,项目名称:hadoop-oss,代码行数:10,代码来源:StandardSocketFactory.java

示例8: createSocket

import java.net.Socket; //导入方法依赖的package包/类
/***
 * Creates a Socket connected to the given host and port and
 * originating from the specified local address and port.
 * <p>
 * @param address The address of the host to connect to.
 * @param port The port to connect to.
 * @param localAddr  The local address to use.
 * @param localPort  The local port to use.
 * @return A Socket connected to the given host and port.
 * @exception java.io.IOException If an I/O error occurs while creating the Socket.
 ***/
@Override
public Socket createSocket(InetAddress address, int port,
                           InetAddress localAddr, int localPort)
throws IOException
{
    if (connProxy != null)
    {
        Socket s = new Socket(connProxy);
        s.bind(new InetSocketAddress(localAddr, localPort));
        s.connect(new InetSocketAddress(address, port));
        return s;
    }
    return new Socket(address, port, localAddr, localPort);
}
 
开发者ID:archos-sa,项目名称:aos-FileCoreLibrary,代码行数:26,代码来源:DefaultSocketFactory.java

示例9: createSocket

import java.net.Socket; //导入方法依赖的package包/类
@Override
public Socket createSocket(String host, int port, InetAddress localHostAddr, int localPort) throws IOException, UnknownHostException {
    Socket socket = createSocket();
    socket.bind(new InetSocketAddress(localHostAddr, localPort));
    socket.connect(new InetSocketAddress(host, port));
    return socket;
}
 
开发者ID:clickha,项目名称:nifi-tools,代码行数:8,代码来源:SocksProxySocketFactory.java

示例10: connectSocket

import java.net.Socket; //导入方法依赖的package包/类
/**
 * @since 4.1
 */
public Socket connectSocket(
        final Socket socket,
        final InetSocketAddress remoteAddress,
        final InetSocketAddress localAddress,
        final HttpParams params) throws IOException, ConnectTimeoutException {
    Args.notNull(remoteAddress, "Remote address");
    Args.notNull(params, "HTTP parameters");
    Socket sock = socket;
    if (sock == null) {
        sock = createSocket();
    }
    if (localAddress != null) {
        sock.setReuseAddress(HttpConnectionParams.getSoReuseaddr(params));
        sock.bind(localAddress);
    }
    final int connTimeout = HttpConnectionParams.getConnectionTimeout(params);
    final int soTimeout = HttpConnectionParams.getSoTimeout(params);

    try {
        sock.setSoTimeout(soTimeout);
        sock.connect(remoteAddress, connTimeout);
    } catch (final SocketTimeoutException ex) {
        throw new ConnectTimeoutException("Connect to " + remoteAddress + " timed out");
    }
    return sock;
}
 
开发者ID:mozilla-mobile,项目名称:FirefoxData-android,代码行数:30,代码来源:PlainSocketFactory.java

示例11: createSocket

import java.net.Socket; //导入方法依赖的package包/类
/***
 * Creates a Socket connected to the given host and port and
 * originating from the specified local address and port.
 * <p>
 * @param host The hostname to connect to.
 * @param port The port to connect to.
 * @param localAddr  The local address to use.
 * @param localPort  The local port to use.
 * @return A Socket connected to the given host and port.
 * @exception UnknownHostException  If the hostname cannot be resolved.
 * @exception IOException If an I/O error occurs while creating the Socket.
 ***/
@Override
public Socket createSocket(String host, int port,
                           InetAddress localAddr, int localPort)
throws UnknownHostException, IOException
{
    if (connProxy != null)
    {
        Socket s = new Socket(connProxy);
        s.bind(new InetSocketAddress(localAddr, localPort));
        s.connect(new InetSocketAddress(host, port));
        return s;
    }
    return new Socket(host, port, localAddr, localPort);
}
 
开发者ID:kmarius,项目名称:xdman,代码行数:27,代码来源:DefaultSocketFactory.java

示例12: connectSocket

import java.net.Socket; //导入方法依赖的package包/类
public Socket connectSocket(
        final int connectTimeout,
        final Socket socket,
        final HttpHost host,
        final InetSocketAddress remoteAddress,
        final InetSocketAddress localAddress,
        final HttpContext context) throws IOException {
    Args.notNull(host, "HTTP host");
    Args.notNull(remoteAddress, "Remote address");
    final Socket sock = socket != null ? socket : createSocket(context);
    if (localAddress != null) {
        sock.bind(localAddress);
    }
    try {
        sock.connect(remoteAddress, connectTimeout);
    } catch (final IOException ex) {
        try {
            sock.close();
        } catch (final IOException ignore) {
        }
        throw ex;
    }
    // Setup SSL layering if necessary
    if (sock instanceof SSLSocket) {
        final SSLSocket sslsock = (SSLSocket) sock;
        sslsock.startHandshake();
        verifyHostname(sslsock, host.getHostName());
        return sock;
    } else {
        return createLayeredSocket(sock, host.getHostName(), remoteAddress.getPort(), context);
    }
}
 
开发者ID:mozilla-mobile,项目名称:FirefoxData-android,代码行数:33,代码来源:SSLSocketFactory.java

示例13: createSocket

import java.net.Socket; //导入方法依赖的package包/类
@Override
public Socket createSocket(final String host, final int port, final InetAddress localAddress, final int localPort, final HttpConnectionParams params) throws IOException {
    final Socket socket = this.ssl.getSocketFactory().createSocket();
    socket.bind(new InetSocketAddress(localAddress, localPort));
    socket.connect(new InetSocketAddress(host, port), 60000);
    return socket;
}
 
开发者ID:Samuel-Oliveira,项目名称:Java_Certificado,代码行数:8,代码来源:SocketFactoryDinamico.java

示例14: createSocket

import java.net.Socket; //导入方法依赖的package包/类
private void createSocket() throws IOException{
	socket = new Socket();
	socket.bind(new InetSocketAddress(localInet, localPort));
}
 
开发者ID:Flash3388,项目名称:FlashLib,代码行数:5,代码来源:TCPCommInterface.java

示例15: connect

import java.net.Socket; //导入方法依赖的package包/类
/**
 * Like {@link NetUtils#connect(Socket, SocketAddress, int)} but
 * also takes a local address and port to bind the socket to. 
 * 
 * @param socket
 * @param endpoint the remote address
 * @param localAddr the local address to bind the socket to
 * @param timeout timeout in milliseconds
 */
public static void connect(Socket socket, 
                           SocketAddress endpoint,
                           SocketAddress localAddr,
                           int timeout) throws IOException {
  if (socket == null || endpoint == null || timeout < 0) {
    throw new IllegalArgumentException("Illegal argument for connect()");
  }
  
  SocketChannel ch = socket.getChannel();
  
  if (localAddr != null) {
    Class localClass = localAddr.getClass();
    Class remoteClass = endpoint.getClass();
    Preconditions.checkArgument(localClass.equals(remoteClass),
        "Local address %s must be of same family as remote address %s.",
        localAddr, endpoint);
    socket.bind(localAddr);
  }

  try {
    if (ch == null) {
      // let the default implementation handle it.
      socket.connect(endpoint, timeout);
    } else {
      SocketIOWithTimeout.connect(ch, endpoint, timeout);
    }
  } catch (SocketTimeoutException ste) {
    throw new ConnectTimeoutException(ste.getMessage());
  }

  // There is a very rare case allowed by the TCP specification, such that
  // if we are trying to connect to an endpoint on the local machine,
  // and we end up choosing an ephemeral port equal to the destination port,
  // we will actually end up getting connected to ourself (ie any data we
  // send just comes right back). This is only possible if the target
  // daemon is down, so we'll treat it like connection refused.
  if (socket.getLocalPort() == socket.getPort() &&
      socket.getLocalAddress().equals(socket.getInetAddress())) {
    LOG.info("Detected a loopback TCP socket, disconnecting it");
    socket.close();
    throw new ConnectException(
      "Localhost targeted connection resulted in a loopback. " +
      "No daemon is listening on the target port.");
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:55,代码来源:NetUtils.java


注:本文中的java.net.Socket.bind方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。