类java.net.SocketAddress源码实例Demo

下面列出了怎么用java.net.SocketAddress的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: netty-4.1.22   文件: Bootstrap.java
private static void doConnect(
            final SocketAddress remoteAddress, final SocketAddress localAddress, final ChannelPromise connectPromise) {

        // This method is invoked before channelRegistered() is triggered.  Give user handlers a chance to set up
        // the pipeline in its channelRegistered() implementation.//这个方法在触发channelRegistered()之前被调用。给用户处理程序一个设置的机会
//管道的channelRegistered()实现。
        final Channel channel = connectPromise.channel();
        channel.eventLoop().execute(new Runnable() {
            @Override
            public void run() {
                if (localAddress == null) {
//                    远程连接
                    channel.connect(remoteAddress, connectPromise);
                } else {
//                    本地连接
                    channel.connect(remoteAddress, localAddress, connectPromise);
                }
                connectPromise.addListener(ChannelFutureListener.CLOSE_ON_FAILURE);
            }
        });
    }
 
源代码2 项目: openjdk-jdk8u-backup   文件: ReceiveIntoDirect.java
void runWithManyOffsets(SocketAddress addr, int bufferSize)
    throws IOException
{
    doTest(addr, bufferSize, 1);
    doTest(addr, bufferSize, 2);
    doTest(addr, bufferSize, 3);
    doTest(addr, bufferSize, 4);
    doTest(addr, bufferSize, 5);
    doTest(addr, bufferSize, 6);
    doTest(addr, bufferSize, 7);
    doTest(addr, bufferSize, 8);
    doTest(addr, bufferSize, 9);
    doTest(addr, bufferSize, 10);
    doTest(addr, bufferSize, 11);
    doTest(addr, bufferSize, 12);
    doTest(addr, bufferSize, 13);
    doTest(addr, bufferSize, 14);
    doTest(addr, bufferSize, 15);
}
 
@Test
public void create() {
  List<EquivalentAddressGroup> addrs = new ArrayList<>();
  addrs.add(new EquivalentAddressGroup(mock(SocketAddress.class)));
  Attributes attr = Attributes.newBuilder().build();
  ChildLbResolvedAddressFactory factory = new ChildLbResolvedAddressFactory(addrs, attr);
  Object config1 = new Object();
  
  ResolvedAddresses resolvedAddress = factory.create(config1);
  
  assertThat(resolvedAddress.getAddresses()).isEqualTo(addrs);
  assertThat(resolvedAddress.getAttributes()).isEqualTo(attr);
  assertThat(resolvedAddress.getLoadBalancingPolicyConfig()).isEqualTo(config1);

  Object config2 = "different object";
  
  resolvedAddress = factory.create(config2);

  assertThat(resolvedAddress.getAddresses()).isEqualTo(addrs);
  assertThat(resolvedAddress.getAttributes()).isEqualTo(attr);
  assertThat(resolvedAddress.getLoadBalancingPolicyConfig()).isEqualTo(config2);
}
 
源代码4 项目: kieker   文件: SocketChannelTest.java
@Test
public void socketChannelShouldAlwaysReturnTheSameSocket() throws Exception {
	final SocketAddress socketAddress = new InetSocketAddress(this.hostname, this.port);
	final int timeout = 1;

	final SocketChannel socketChannel = SocketChannel.open();

	final Socket socket = socketChannel.socket();
	try {
		socket.connect(socketAddress, timeout);
	} catch (SocketTimeoutException | ConnectException e) { // NOPMD (empty catch block)
		// both of the exceptions indicate a connection timeout
		// => ignore to reconnect
	}

	// The previous connect should throw an exception
	assertThat(socket.isConnected(), is(false)); // NOPMD (JUnit message is not necessary)
}
 
@Override
public final AsynchronousSocketChannel bind(SocketAddress local)
    throws IOException
{
    try {
        begin();
        synchronized (stateLock) {
            if (state == ST_PENDING)
                throw new ConnectionPendingException();
            if (localAddress != null)
                throw new AlreadyBoundException();
            InetSocketAddress isa = (local == null) ?
                new InetSocketAddress(0) : Net.checkAddress(local);
            SecurityManager sm = System.getSecurityManager();
            if (sm != null) {
                sm.checkListen(isa.getPort());
            }
            NetHooks.beforeTcpBind(fd, isa.getAddress(), isa.getPort());
            Net.bind(fd, isa.getAddress(), isa.getPort());
            localAddress = Net.localAddress(fd);
        }
    } finally {
        end();
    }
    return this;
}
 
源代码6 项目: flink   文件: ConnectionUtils.java
/**
 * This utility method tries to connect to the JobManager using the InetAddress returned by
 * InetAddress.getLocalHost(). The purpose of the utility is to have a final try connecting to
 * the target address using the LocalHost before using the address returned.
 * We do a second try because the JM might have been unavailable during the first check.
 *
 * @param preliminaryResult The address detected by the heuristic
 * @return either the preliminaryResult or the address returned by InetAddress.getLocalHost() (if
 * 			we are able to connect to targetAddress from there)
 */
private static InetAddress tryLocalHostBeforeReturning(
			InetAddress preliminaryResult, SocketAddress targetAddress, boolean logging) throws IOException {

	InetAddress localhostName = InetAddress.getLocalHost();

	if (preliminaryResult.equals(localhostName)) {
		// preliminary result is equal to the local host name
		return preliminaryResult;
	}
	else if (tryToConnect(localhostName, targetAddress, AddressDetectionState.SLOW_CONNECT.getTimeout(), logging)) {
		// success, we were able to use local host to connect
		LOG.debug("Preferring {} (InetAddress.getLocalHost()) for local bind point over previous candidate {}",
				localhostName, preliminaryResult);
		return localhostName;
	}
	else {
		// we have to make the preliminary result the final result
		return preliminaryResult;
	}
}
 
@Override
public final AsynchronousServerSocketChannel bind(SocketAddress local, int backlog)
    throws IOException
{
    InetSocketAddress isa = (local == null) ? new InetSocketAddress(0) :
        Net.checkAddress(local);
    SecurityManager sm = System.getSecurityManager();
    if (sm != null)
        sm.checkListen(isa.getPort());

    try {
        begin();
        synchronized (stateLock) {
            if (localAddress != null)
                throw new AlreadyBoundException();
            NetHooks.beforeTcpBind(fd, isa.getAddress(), isa.getPort());
            Net.bind(fd, isa.getAddress(), isa.getPort());
            Net.listen(fd, backlog < 1 ? 50 : backlog);
            localAddress = Net.localAddress(fd);
        }
    } finally {
        end();
    }
    return this;
}
 
源代码8 项目: openjdk-8   文件: SctpChannelImpl.java
@Override
public Set<SocketAddress> getRemoteAddresses()
        throws IOException {
    synchronized (stateLock) {
        if (!isOpen())
            throw new ClosedChannelException();
        if (!isConnected() || isShutdown)
            return Collections.emptySet();

        try {
            return SctpNet.getRemoteAddresses(fdVal, 0/*unused*/);
        } catch (SocketException unused) {
            /* an open connected channel should always have remote addresses */
            return remoteAddresses;
        }
    }
}
 
@Override
public boolean connect(SocketAddress remote) throws IOException {

    long start = System.currentTimeMillis();
    //log.debug("trying to connect");
    socketChannel.connect(remote);
    if (selector.select(connectTimeout) > 0) {
        selector.selectedKeys().remove(channelKey);
        //log.debug("selected connect");
        //log.debug("Spent " + (System.currentTimeMillis() - start));
        if (!channelKey.isConnectable()) {
            throw new IllegalStateException("Socket channel is in not connectable state");
        }

        socketChannel.finishConnect();
        channelKey = socketChannel.register(selector, SelectionKey.OP_READ);
        if (log.isDebugEnabled()) {
            log.debug("Connected socket in " + (System.currentTimeMillis() - start));
        }
        if (!socketChannel.isConnected()) {
            throw new SocketException("SocketChannel not connected on some reason");
        }
        return true;
    }
    //log.debug("Spent " + (System.currentTimeMillis() - start));
    throw new SocketTimeoutException("Failed to connect to " + remote.toString());
}
 
源代码10 项目: openjdk-8-source   文件: SctpServerChannelImpl.java
@Override
public Set<SocketAddress> getAllLocalAddresses()
        throws IOException {
    synchronized (stateLock) {
        if (!isOpen())
            throw new ClosedChannelException();
        if (!isBound())
            return Collections.emptySet();

        return SctpNet.getLocalAddresses(fdVal);
    }
}
 
源代码11 项目: grpc-nebula-java   文件: ManagedChannelImplTest.java
@Test
public void subchannelChannel_normalUsage() {
  createChannel();
  Subchannel subchannel = createSubchannelSafely(helper, addressGroup, Attributes.EMPTY);
  verify(balancerRpcExecutorPool, never()).getObject();

  Channel sChannel = subchannel.asChannel();
  verify(balancerRpcExecutorPool).getObject();

  Metadata headers = new Metadata();
  CallOptions callOptions = CallOptions.DEFAULT.withDeadlineAfter(5, TimeUnit.SECONDS);

  // Subchannel must be READY when creating the RPC.
  subchannel.requestConnection();
  verify(mockTransportFactory)
      .newClientTransport(any(SocketAddress.class), any(ClientTransportOptions.class));
  MockClientTransportInfo transportInfo = transports.poll();
  ConnectionClientTransport mockTransport = transportInfo.transport;
  ManagedClientTransport.Listener transportListener = transportInfo.listener;
  transportListener.transportReady();

  ClientCall<String, Integer> call = sChannel.newCall(method, callOptions);
  call.start(mockCallListener, headers);
  verify(mockTransport).newStream(same(method), same(headers), callOptionsCaptor.capture());

  CallOptions capturedCallOption = callOptionsCaptor.getValue();
  assertThat(capturedCallOption.getDeadline()).isSameAs(callOptions.getDeadline());
  assertThat(capturedCallOption.getOption(GrpcUtil.CALL_OPTIONS_RPC_OWNED_BY_BALANCER)).isTrue();
}
 
源代码12 项目: green_android   文件: BlockingClientManager.java
@Override
public ListenableFuture<SocketAddress> openConnection(SocketAddress serverAddress, StreamConnection connection) {
    try {
        if (!isRunning())
            throw new IllegalStateException();
        return new BlockingClient(serverAddress, connection, connectTimeoutMillis, socketFactory, clients).getConnectFuture();
    } catch (IOException e) {
        throw new RuntimeException(e); // This should only happen if we are, eg, out of system resources
    }
}
 
源代码13 项目: tchannel-java   文件: PeerManager.java
public Peer findOrNewPeer(@NotNull SocketAddress address) {
    Peer peer = peers.get(address);
    if (peer == null) {
        peers.putIfAbsent(address, new Peer(this, address));
        peer = peers.get(address);
    }
    return peer;
}
 
源代码14 项目: big-c   文件: DFSClient.java
/**
 * Select one of the configured local interfaces at random. We use a random
 * interface because other policies like round-robin are less effective
 * given that we cache connections to datanodes.
 *
 * @return one of the local interface addresses at random, or null if no
 *    local interfaces are configured
 */
SocketAddress getRandomLocalInterfaceAddr() {
  if (localInterfaceAddrs.length == 0) {
    return null;
  }
  final int idx = r.nextInt(localInterfaceAddrs.length);
  final SocketAddress addr = localInterfaceAddrs[idx];
  if (LOG.isDebugEnabled()) {
    LOG.debug("Using local interface " + addr);
  }
  return addr;
}
 
源代码15 项目: openjdk-jdk8u-backup   文件: Receive.java
public Server() throws IOException {
    ssc = SctpServerChannel.open().bind(null);
    java.util.Set<SocketAddress> addrs = ssc.getAllLocalAddresses();
    if (addrs.isEmpty())
        debug("addrs should not be empty");

    serverAddr = (InetSocketAddress) addrs.iterator().next();
}
 
@Override
public void bind(
        ChannelHandlerContext ctx,
        SocketAddress localAddress, ChannelPromise promise) throws Exception {
    assert ctx == outboundCtx.ctx;
    if (!outboundCtx.removed) {
        outboundHandler.bind(outboundCtx, localAddress, promise);
    } else {
        outboundCtx.bind(localAddress, promise);
    }
}
 
源代码17 项目: Bytecoder   文件: DatagramSocketAdaptor.java
private void connectInternal(SocketAddress remote) throws SocketException {
    try {
        dc.connect(remote, false); // skips check for already connected
    } catch (ClosedChannelException e) {
        // ignore
    } catch (Exception x) {
        Net.translateToSocketException(x);
    }
}
 
源代码18 项目: RocketMQ-Master-analyze   文件: RemotingHelper.java
public static String parseSocketAddressName(SocketAddress socketAddress) {

        final InetSocketAddress addrs = (InetSocketAddress) socketAddress;
        if (addrs != null) {
            return addrs.getAddress().getHostName();
        }
        return "";
    }
 
@Override
protected SocketAddress localAddress0() {
    StreamConnection conn = connection();
    if (conn == null) {
        return null;
    }
    return conn.getLocalAddress();
}
 
源代码20 项目: neoscada   文件: AbstractIoAcceptor.java
/**
 * {@inheritDoc}
 */
public final void bind(SocketAddress... addresses) throws IOException {
    if ((addresses == null) || (addresses.length == 0)) {
        bind(getDefaultLocalAddresses());
        return;
    }

    List<SocketAddress> localAddresses = new ArrayList<SocketAddress>(2);

    for (SocketAddress address : addresses) {
        localAddresses.add(address);
    }

    bind(localAddresses);
}
 
源代码21 项目: rtspTortmp   文件: RtmpConnection.java
@Override
    public void connect() throws IOException {

        L.d("RtmpConnection.connect() called. Host: " + host + ", port: " + port + ", appName: " + appName + ", playPath: " + streamName);
        socket = new Socket();
        SocketAddress socketAddress = new InetSocketAddress(host, port);
        socket.connect(socketAddress, SOCKET_CONNECT_TIMEOUT_MS);
        BufferedInputStream in = new BufferedInputStream(socket.getInputStream());
        BufferedOutputStream out = new BufferedOutputStream(socket.getOutputStream());
        L.d("RtmpConnection.connect(): socket connection established, doing handhake...");
        handshake(in, out);
        active = true;
        L.d("RtmpConnection.connect(): handshake done");
        readThread = new ReadThread(rtmpSessionInfo, in, this, this);
        writeThread = new WriteThread(rtmpSessionInfo, out, this);
        readThread.start();
        writeThread.start();

        // Start the "main" handling thread
        new Thread(new Runnable() {

            @Override
            public void run() {
                try {
                    L.d("RtmpConnection: starting main rx handler loop");
                    handleRxPacketLoop();
                } catch (IOException ex) {
                    Logger.getLogger(RtmpConnection.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }).start();
//        rxHandler;

        rtmpConnect();
    }
 
源代码22 项目: syslog4j   文件: SyslogServerSessionTest.java
public void sessionClosed(Object session, SyslogServerIF syslogServer, SocketAddress socketAddress, boolean timeout) {
	if (session != null) {
		int i = translate((String) session);
		
		if (i != -1) {
			closeCount[i]++;
		}
	}

	System.out.println("closed: " + id + "/" + session.toString());
}
 
源代码23 项目: openjdk-jdk9   文件: SctpChannelImpl.java
@Override
public boolean connect(SocketAddress endpoint,
                       int maxOutStreams,
                       int maxInStreams)
        throws IOException {
    ensureOpenAndUnconnected();
    return setOption(SCTP_INIT_MAXSTREAMS, InitMaxStreams.
            create(maxInStreams, maxOutStreams)).connect(endpoint);

}
 
源代码24 项目: localization_nifi   文件: SmtpConsumer.java
private Map<String, String> extractMessageAttributes() {
    final Map<String, String> attributes = new HashMap<>();
    final Certificate[] tlsPeerCertificates = context.getTlsPeerCertificates();
    if (tlsPeerCertificates != null) {
        for (int i = 0; i < tlsPeerCertificates.length; i++) {
            if (tlsPeerCertificates[i] instanceof X509Certificate) {
                X509Certificate x509Cert = (X509Certificate) tlsPeerCertificates[i];
                attributes.put("smtp.certificate." + i + ".serial", x509Cert.getSerialNumber().toString());
                attributes.put("smtp.certificate." + i + ".subjectName", x509Cert.getSubjectDN().getName());
            }
        }
    }

    SocketAddress address = context.getRemoteAddress();
    if (address != null) {
        // will extract and format source address if available
        String strAddress = address instanceof InetSocketAddress
                ? ((InetSocketAddress) address).getHostString() + ":" + ((InetSocketAddress) address).getPort()
                : context.getRemoteAddress().toString();
        attributes.put("smtp.src", strAddress);
    }

    attributes.put("smtp.helo", context.getHelo());
    attributes.put("smtp.from", from);
    for (int i = 0; i < recipientList.size(); i++) {
        attributes.put("smtp.recipient." + i, recipientList.get(i));
    }
    attributes.put(CoreAttributes.MIME_TYPE.key(), "message/rfc822");
    return attributes;
}
 
private TNonblockingSocket(SocketChannel socketChannel, int timeout, SocketAddress socketAddress)
    throws IOException {
  socketChannel_ = socketChannel;
  socketAddress_ = socketAddress;

  // make it a nonblocking channel
  socketChannel.configureBlocking(false);

  // set options
  Socket socket = socketChannel.socket();
  socket.setSoLinger(false, 0);
  socket.setTcpNoDelay(true);
  setTimeout(timeout);
}
 
源代码26 项目: jdk8u60   文件: Send.java
public Server() throws IOException {
    ssc = SctpServerChannel.open().bind(null);
    java.util.Set<SocketAddress> addrs = ssc.getAllLocalAddresses();
    if (addrs.isEmpty())
        debug("addrs should not be empty");

    serverAddr = (InetSocketAddress) addrs.iterator().next();
}
 
源代码27 项目: servicetalk   文件: ProtocolCompatibilityTest.java
private static CompatClient serviceTalkClient(final SocketAddress serverAddress, final boolean ssl) {
    final GrpcClientBuilder<InetSocketAddress, InetSocketAddress> builder =
            GrpcClients.forResolvedAddress((InetSocketAddress) serverAddress);
    if (ssl) {
        builder.secure().disableHostnameVerification().provider(OPENSSL)
                .trustManager(DefaultTestCerts::loadServerPem).commit();
    }
    return builder.build(new Compat.ClientFactory());
}
 
源代码28 项目: packagedrone   文件: Helper.java
private static Proxy getProxy ( final String url )
{
    final ProxySelector ps = ProxySelector.getDefault ();
    if ( ps == null )
    {
        logger.debug ( "No proxy selector found" );
        return null;
    }

    final List<java.net.Proxy> proxies = ps.select ( URI.create ( url ) );
    for ( final java.net.Proxy proxy : proxies )
    {
        if ( proxy.type () != Type.HTTP )
        {
            logger.debug ( "Unsupported proxy type: {}", proxy.type () );
            continue;
        }

        final SocketAddress addr = proxy.address ();
        logger.debug ( "Proxy address: {}", addr );

        if ( ! ( addr instanceof InetSocketAddress ) )
        {
            logger.debug ( "Unsupported proxy address type: {}", addr.getClass () );
            continue;
        }

        final InetSocketAddress inetAddr = (InetSocketAddress)addr;

        return new Proxy ( Proxy.TYPE_HTTP, inetAddr.getHostString (), inetAddr.getPort () );
    }

    logger.debug ( "No proxy found" );
    return null;
}
 
源代码29 项目: big-c   文件: RpcProgram.java
protected static void sendRejectedReply(RpcCall call,
    SocketAddress remoteAddress, ChannelHandlerContext ctx) {
  XDR out = new XDR();
  RpcDeniedReply reply = new RpcDeniedReply(call.getXid(),
      RpcReply.ReplyState.MSG_DENIED,
      RpcDeniedReply.RejectState.AUTH_ERROR, new VerifierNone());
  reply.write(out);
  ChannelBuffer buf = ChannelBuffers.wrappedBuffer(out.asReadOnlyWrap()
      .buffer());
  RpcResponse rsp = new RpcResponse(buf, remoteAddress);
  RpcUtil.sendRpcResponse(ctx, rsp);
}
 
源代码30 项目: rocketmq   文件: RemotingUtil.java
public static String socketAddress2String(final SocketAddress addr) {
    StringBuilder sb = new StringBuilder();
    InetSocketAddress inetSocketAddress = (InetSocketAddress)addr;
    sb.append(inetSocketAddress.getAddress().getHostAddress());
    sb.append(":");
    sb.append(inetSocketAddress.getPort());
    return sb.toString();
}
 
 类所在包
 同包方法