zoukankan      html  css  js  c++  java
  • 【JAVA】【NIO】10、Java NIO ServerSocketChannel

    Java NIO的ServerSocketChannel是用来监听外来TCP连接的channel,就想标准Java网络中的ServerSocket。实比例如以下:

    ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();
    		serverSocketChannel.socket().bind(new InetSocketAddress(8090));
    		while(true) {
    			SocketChannel socketChannel = serverSocketChannel.accept();
    		}

    打开一个ServerSocketChannel

    通过open方法打开

    ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();

    关闭ServerSocketChannel

    通过close方法

    监听外来连接

    监听外来连接通过调用accept方法,当accept方法返回,将返回一个连接的SocketChannel。

    所以accept方法会堵塞直到有连接。

    因为普通情况对单个连接没有监听的兴趣,你能够在循环内调用accept方法。

    while(true) {
    			SocketChannel socketChannel = serverSocketChannel.accept();
    		}
    当然。你应该使用一些退出循环的条件。而不是true。

    非堵塞模式

    ServerSocketChannel能设置成非堵塞模式,在非堵塞模式下。accept方法马上返回。有可能返回null(假设没有连接建立)。

    因此你必须检查返回的SocketChannel是不是null。例如以下:

    while(true) {
    			SocketChannel socketChannel = serverSocketChannel.accept();
    			if(socketChannel!=null) {
    				
    			}
    		}

    下一节:【JAVA】【NIO】11、Java NIO DatagramChannel

  • 相关阅读:
    站立会议04(第二阶段)附加站立会议02、03
    第二阶段冲刺---站立会议01
    网络:Session原理及存储
    网络:Xen理解
    网络:LVS负载均衡原理
    网络:OSPF理解
    语音笔记:信号分析
    语音笔记:CTC
    语音笔记:矢量量化
    语音笔记:MFCC
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6721334.html
Copyright © 2011-2022 走看看