1 SocketChannel

1.1 打开一个SocketChannel

SocketChannel socketChannel = SocketChannel.open();

socketChannel.connect(new InetSocketAddress("http://www.baidu.com", 80));

1.2 关闭一个SocketChannel

socketChannel.close();

1.3 读取一个SocketChannel

ByteBuffer buf = ByteBuffer.allocate(48);

int byteRead = socketChannel.read(buf);

2 ServerSocketChannel

2.1 ServerSocketChannel in blocking mode

ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();

serverSocketChannel.socket().bind(new InetSocketAddress(1111));

while(true) {

SocketChannel socketChannel = serverSocketChannel.accept();

// do something with socketChannel.......

}

2.2 ServerSocketChannel in non-blocking mode

ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();

serverSocketChannel.socket().bind(new InetSocketAddress(1111));

serverSocketChannel.configureBlocking(false);

while(true) {

SocketChannel socketChannel = serverSocketChannel.accept();

if (socketChannel != null)

{

// do something with socketChannel.......

}

}

在non-blocking mode时,没有人来connect的时候accept()就会直接返回。这也是non-blocking的意义所在,对于文件而言,总是可以读写的,不存在block一说,也就没有non-blocking mode了。

转载于:https://www.cnblogs.com/hustdc/p/8109785.html

java SocketChannel and ServerSocketChannel相关推荐

  1. Java网络编程之SocketChannel和ServerSocketChannel

    SocketChannel SocketChannel是java nio 提供的用于连接两台计算机进行通信的套接字通道,把Channel去掉就剩下Socket,可见与Socket有着相似的功能. So ...

  2. java SocketChannel 网页保存

    1:使用SocketChannel的NIO客户机服务器通信示例.(转) http://www.cnblogs.com/likwo/archive/2010/06/29/1767814.html 2: ...

  3. java socketchannel api,SocketChannel API

    Netty是当前非常流行的网络通讯框架,当程序对网络数据处理时,需要保证高并发和高可靠,底层就可以用Netty支撑. 本套课程详细讲解了Netty核心技术点,同时进行底层机制和源码剖析,并编写了大量的 ...

  4. java开怎么能不知道Netty几个核心类呢?

    ByteBuf JDK原生ByteBuffer的核心功能 字节缓冲区,主要对字节进行操作的一个类 能够将缓冲区建立在堆内和堆外.普通的new byte[] ,都只是建立在堆内 Netty之所以要自己封 ...

  5. Java NIO Selector , SelectionKey , SocketChannel , ServerSocketChannel

    一    NIO介绍 1. NIO是非阻塞的 NIO非堵塞应用通常适用用在I/O读写等方面,我们知道,系统运行的性能瓶颈通常在I/O读写,包括对端口和文件的操作上,过去,在打开一个I/O通道后,rea ...

  6. java socket回调_Java ServerSocketChannel SocketChannel(回调)

    您需要使用选择器.首先创建一个Selector来接收事件: Selector selector = Selector.open() 然后,您需要使用选择器注册ServerSocketChannel: ...

  7. Java NIO系列教程(九) ServerSocketChannel

    Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样.ServerSocketChannel类在 jav ...

  8. java try finally connectoin close_Java SocketChannel類代碼示例

    本文整理匯總了Java中io.netty.channel.socket.SocketChannel類的典型用法代碼示例.如果您正苦於以下問題:Java SocketChannel類的具體用法?Java ...

  9. java NIO详解

    http://zalezone.cn/2014/09/17/NIO%E7%B2%BE%E7%B2%B9/ 1. 前言 我们在写java程序的时候,为了进行优化,把全部的精力用在了处理效率上,但是对IO ...

最新文章

  1. github上可供新手阅读和玩耍的java项目有哪些??
  2. 【Python基础】Python安装第三方库太慢?配置好这个速度飞起
  3. A Full Hardware Guide to Deep Learning
  4. convert.todatetime指定日期格式_SQL基础知识V2——常用日期函数
  5. vue 外部方法调用内部_vue函数内部调用外部函数,报错外部函数不是函数
  6. 24时区,GMT,UTC,DST,CST时间详解
  7. 注入器 过检测_福特全顺V348检测车报价
  8. aesmiyao php_PHP实现的AES 128位加密算法示例
  9. AIX系统修改文件系统的方法
  10. window.open() 打开IE缓慢的原因
  11. no input file specified 三种解决方法
  12. outlook设置京东邮箱
  13. [UVA 202]Repeating Decimals
  14. 关于网易2018实习生招聘的“道路布灯”问题
  15. 我将进化成一条狗(9)——基因治疗
  16. 包机制、访问修饰符、Jar包 java初学 面向对象五
  17. 同步fifo与异步fifo
  18. OSChina Maven使用说明
  19. python彩色蟒蛇绘制方向_Python绘制彩色蟒蛇
  20. AAAI‘22 推荐系统论文梳理

热门文章

  1. leetcode算法题--会议室★★
  2. 系统相机裁剪比例_《零基础轻松学会PS》二章第3节:裁剪工具的使用方法
  3. Spring Boot 发起 HTTP 请求
  4. F - Tmutarakan Exams URAL - 1091 -莫比乌斯函数-容斥 or DP计数
  5. Yii2 HOW-TO(3):调试工具yii2-debug和Xdebug(失败)
  6. 分布式事务 TCC-Transaction 源码分析 —— 项目实战
  7. 【BZOJ】3224: Tyvj 1728 普通平衡树
  8. 如何修改dedecms专题目录默认名称special
  9. 使用Gson 解析json
  10. ubuntu 下安装 VIM 依赖vim-common错误