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


Java ServerSocketChannel.socket方法代码示例

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


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

示例1: init

import java.nio.channels.ServerSocketChannel; //导入方法依赖的package包/类
private void init() {

        ServerSocketChannel socketChannel = processor.javaChannel();

        ServerSocket javaSocket = socketChannel.socket();

        try {
            if (serverConfig.getReceiveBufferSize() != null) {
                javaSocket.setReceiveBufferSize(serverConfig.getReceiveBufferSize());
            }
            if (serverConfig.getReuseAddress() != null) {
                javaSocket.setReuseAddress(serverConfig.getReuseAddress());
            }
        } catch (SocketException e) {
            throw new NioException("config channel error:" + e.getMessage(), e);
        }
    }
 
开发者ID:lemonJun,项目名称:TakinRPC,代码行数:18,代码来源:NioServer.java

示例2: openServerSocket

import java.nio.channels.ServerSocketChannel; //导入方法依赖的package包/类
public final void openServerSocket(InetAddress address, int tcpPort) throws IOException
{
	final ServerSocketChannel selectable = ServerSocketChannel.open();
	selectable.configureBlocking(false);
	
	final ServerSocket ss = selectable.socket();
	
	if (address != null)
	{
		ss.bind(new InetSocketAddress(address, tcpPort));
	}
	else
	{
		ss.bind(new InetSocketAddress(tcpPort));
	}
	
	selectable.register(_selector, SelectionKey.OP_ACCEPT);
}
 
开发者ID:rubenswagner,项目名称:L2J-Global,代码行数:19,代码来源:SelectorThread.java

示例3: bindNIOServerSocket

import java.nio.channels.ServerSocketChannel; //导入方法依赖的package包/类
/**
 * Creates a NIO ServerSocketChannel, and gets the ServerSocket from
 * there. Then binds the obtained socket.
 * This fails on Windows with Oracle JDK1.6.0u33, if the passed InetAddress is a
 * IPv6 address. Works on Oracle JDK 1.7.
 */
private void bindNIOServerSocket(InetAddress inetAddr) throws IOException {
  while (true) {
    int port = HBaseTestingUtility.randomFreePort();
    InetSocketAddress addr = new InetSocketAddress(inetAddr, port);
    ServerSocketChannel channel = null;
    ServerSocket serverSocket = null;
    try {
      channel = ServerSocketChannel.open();
      serverSocket = channel.socket();
      serverSocket.bind(addr); // This does not work
      break;
    } catch (BindException ex) {
      //continue
    } finally {
      if (serverSocket != null) {
        serverSocket.close();
      }
      if (channel != null) {
        channel.close();
      }
    }  
  }
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:30,代码来源:TestIPv6NIOServerSocketChannel.java

示例4: openServerSocket

import java.nio.channels.ServerSocketChannel; //导入方法依赖的package包/类
public final void openServerSocket(InetAddress address, int tcpPort) throws IOException
{
    ServerSocketChannel selectable = ServerSocketChannel.open();
    selectable.configureBlocking(false);

    ServerSocket ss = selectable.socket();
    
    if (address == null)
        ss.bind(new InetSocketAddress(tcpPort));
    else
        ss.bind(new InetSocketAddress(address, tcpPort));
    
    selectable.register(_selector, SelectionKey.OP_ACCEPT);
}
 
开发者ID:L2jBrasil,项目名称:L2jBrasil,代码行数:15,代码来源:SelectorThread.java

示例5: open

import java.nio.channels.ServerSocketChannel; //导入方法依赖的package包/类
/**
 * {@inheritDoc}
 */
@Override
protected ServerSocketChannel open(SocketAddress localAddress) throws Exception {
    // Creates the listening ServerSocket
    ServerSocketChannel channel = ServerSocketChannel.open();

    boolean success = false;

    try {
        // This is a non blocking socket channel
        channel.configureBlocking(false);

        // Configure the server socket,
        ServerSocket socket = channel.socket();

        // Set the reuseAddress flag accordingly with the setting
        socket.setReuseAddress(isReuseAddress());

        // and bind.
        socket.bind(localAddress, getBacklog());

        // Register the channel within the selector for ACCEPT event
        channel.register(selector, SelectionKey.OP_ACCEPT);
        success = true;
    } finally {
        if (!success) {
            close(channel);
        }
    }
    return channel;
}
 
开发者ID:eclipse,项目名称:neoscada,代码行数:34,代码来源:NioSocketAcceptor.java

示例6: getLocalPort

import java.nio.channels.ServerSocketChannel; //导入方法依赖的package包/类
/**
 * Port in use.
 */
@Override
public int getLocalPort() {
    ServerSocketChannel ssc = serverSock;
    if (ssc == null) {
        return -1;
    } else {
        ServerSocket s = ssc.socket();
        if (s == null) {
            return -1;
        } else {
            return s.getLocalPort();
        }
    }
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:18,代码来源:NioEndpoint.java

示例7: waitForTask

import java.nio.channels.ServerSocketChannel; //导入方法依赖的package包/类
private void waitForTask() throws Exception {
    if (!DirectByteBufferPool.initInstance(config.getByteBufferSize(), Config.getMaxTakePollIter())) {
        // this is really wrong ... It cannot be already initialized
        throw new FDTProcolException("The buffer pool cannot be already initialized");
    }

    ExecutorService executor = null;
    ServerSocketChannel ssc = null;
    ServerSocket ss = null;
    Selector sel = null;
    try {
        executor = Utils.getStandardExecService("[ Acceptable ServersThreadPool ] ",
                2,
                10,
                new ArrayBlockingQueue<Runnable>(65500),
                Thread.NORM_PRIORITY - 2);
        ssc = ServerSocketChannel.open();
        ssc.configureBlocking(false);
        ss = ssc.socket();
        ss.bind(new InetSocketAddress(config.getPort()));
        sel = Selector.open();
        ssc.register(sel, SelectionKey.OP_ACCEPT);
        System.out.println("READY");
        Utils.waitAndWork(executor, ss, sel, config);
    } finally {
        logger.log(Level.INFO, "[FDT] [ waitForTask ] main loop FINISHED!");
        // close all the stuff
        Utils.closeIgnoringExceptions(ssc);
        Utils.closeIgnoringExceptions(sel);
        Utils.closeIgnoringExceptions(ss);
        if (executor != null) {
            executor.shutdown();
        }
    }
}
 
开发者ID:fast-data-transfer,项目名称:fdt,代码行数:36,代码来源:FDT.java

示例8: getLocalPort

import java.nio.channels.ServerSocketChannel; //导入方法依赖的package包/类
/**
 * Port in use.
 */
@Override
public int getLocalPort() {
	ServerSocketChannel ssc = serverSock;
	if (ssc == null) {
		return -1;
	} else {
		ServerSocket s = ssc.socket();
		if (s == null) {
			return -1;
		} else {
			return s.getLocalPort();
		}
	}
}
 
开发者ID:how2j,项目名称:lazycat,代码行数:18,代码来源:NioEndpoint.java

示例9: openForProject

import java.nio.channels.ServerSocketChannel; //导入方法依赖的package包/类
/**
 * Registers the connection and initiates the listening socket.
 * @param project the project which is being run / debugged
 * @param debugger if true, the connection will pair with a debugger session.
 */
public ShellAgent openForProject(Project p, boolean debugger) throws IOException {
    ServerSocket ss;
    
    String encodedKey;
    boolean shouldInit = false;
    
    synchronized (this) {
        shouldInit = usedKeys.isEmpty();
        do {
            BigInteger key = BigInteger.probablePrime(64, keyGenerator);
            encodedKey = key.toString(Character.MAX_RADIX);
        } while (!usedKeys.add(encodedKey));
    }
    
    if (shouldInit) {
        init();
    }
    
    ServerSocketChannel ssc = ServerSocketChannel.open();
    ssc.configureBlocking(false);
    SocketAddress local = new InetSocketAddress(
        // PENDING: choose something better for remote debugging!
        InetAddress.getLoopbackAddress(),
        0);
    ssc.bind(local);
    ssc.accept();
    ss = ssc.socket();
    LOG.log(Level.FINE, "Creating new server socket {0} for project: {1}", new Object[] {
        ss, p
    });
    ShellAgent agent = new ShellAgent(this, p, ss, encodedKey, debugger);
    synchronized (this) {
        registeredAgents.put(encodedKey, agent);
    }
    synchronized (requests) {
        servers.wakeup();
        requests.add(agent);
        
    }
    return agent;
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:47,代码来源:ShellLaunchManager.java

示例10: createServerSocketUsingPortRange

import java.nio.channels.ServerSocketChannel; //导入方法依赖的package包/类
/**
 * Creates or bind server socket to a random port selected from tcp-port-range which is same as
 * membership-port-range.
 * 
 * @param ba
 * @param backlog
 * @param isBindAddress
 * @param tcpBufferSize
 * @param sslConnection whether to connect using SSL
 *
 * @return Returns the new server socket.
 *
 * @throws IOException
 */
public ServerSocket createServerSocketUsingPortRange(InetAddress ba, int backlog,
    boolean isBindAddress, boolean useNIO, int tcpBufferSize, int[] tcpPortRange,
    boolean sslConnection) throws IOException {
  ServerSocket socket = null;
  int localPort = 0;
  int startingPort = 0;

  // Get a random port from range.
  Random rand = new SecureRandom();
  int portLimit = tcpPortRange[1];
  int randPort = tcpPortRange[0] + rand.nextInt(tcpPortRange[1] - tcpPortRange[0] + 1);

  startingPort = randPort;
  localPort = startingPort;

  while (true) {
    if (localPort > portLimit) {
      if (startingPort != 0) {
        localPort = tcpPortRange[0];
        portLimit = startingPort - 1;
        startingPort = 0;
      } else {
        throw new SystemConnectException(
            LocalizedStrings.TCPConduit_UNABLE_TO_FIND_FREE_PORT.toLocalizedString());
      }
    }
    try {
      if (useNIO) {
        ServerSocketChannel channl = ServerSocketChannel.open();
        socket = channl.socket();

        InetSocketAddress addr = new InetSocketAddress(isBindAddress ? ba : null, localPort);
        socket.bind(addr, backlog);
      } else {
        socket = this.createServerSocket(localPort, backlog, isBindAddress ? ba : null,
            tcpBufferSize, sslConnection);
      }
      break;
    } catch (java.net.SocketException ex) {
      if (useNIO || SocketCreator.treatAsBindException(ex)) {
        localPort++;
      } else {
        throw ex;
      }
    }
  }
  return socket;
}
 
开发者ID:ampool,项目名称:monarch,代码行数:63,代码来源:SocketCreator.java


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