java SocketChannel and ServerSocketChannel
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相关推荐
- Java网络编程之SocketChannel和ServerSocketChannel
SocketChannel SocketChannel是java nio 提供的用于连接两台计算机进行通信的套接字通道,把Channel去掉就剩下Socket,可见与Socket有着相似的功能. So ...
- java SocketChannel 网页保存
1:使用SocketChannel的NIO客户机服务器通信示例.(转) http://www.cnblogs.com/likwo/archive/2010/06/29/1767814.html 2: ...
- java socketchannel api,SocketChannel API
Netty是当前非常流行的网络通讯框架,当程序对网络数据处理时,需要保证高并发和高可靠,底层就可以用Netty支撑. 本套课程详细讲解了Netty核心技术点,同时进行底层机制和源码剖析,并编写了大量的 ...
- java开怎么能不知道Netty几个核心类呢?
ByteBuf JDK原生ByteBuffer的核心功能 字节缓冲区,主要对字节进行操作的一个类 能够将缓冲区建立在堆内和堆外.普通的new byte[] ,都只是建立在堆内 Netty之所以要自己封 ...
- Java NIO Selector , SelectionKey , SocketChannel , ServerSocketChannel
一 NIO介绍 1. NIO是非阻塞的 NIO非堵塞应用通常适用用在I/O读写等方面,我们知道,系统运行的性能瓶颈通常在I/O读写,包括对端口和文件的操作上,过去,在打开一个I/O通道后,rea ...
- java socket回调_Java ServerSocketChannel SocketChannel(回调)
您需要使用选择器.首先创建一个Selector来接收事件: Selector selector = Selector.open() 然后,您需要使用选择器注册ServerSocketChannel: ...
- Java NIO系列教程(九) ServerSocketChannel
Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样.ServerSocketChannel类在 jav ...
- java try finally connectoin close_Java SocketChannel類代碼示例
本文整理匯總了Java中io.netty.channel.socket.SocketChannel類的典型用法代碼示例.如果您正苦於以下問題:Java SocketChannel類的具體用法?Java ...
- java NIO详解
http://zalezone.cn/2014/09/17/NIO%E7%B2%BE%E7%B2%B9/ 1. 前言 我们在写java程序的时候,为了进行优化,把全部的精力用在了处理效率上,但是对IO ...
最新文章
- github上可供新手阅读和玩耍的java项目有哪些??
- 【Python基础】Python安装第三方库太慢?配置好这个速度飞起
- A Full Hardware Guide to Deep Learning
- convert.todatetime指定日期格式_SQL基础知识V2——常用日期函数
- vue 外部方法调用内部_vue函数内部调用外部函数,报错外部函数不是函数
- 24时区,GMT,UTC,DST,CST时间详解
- 注入器 过检测_福特全顺V348检测车报价
- aesmiyao php_PHP实现的AES 128位加密算法示例
- AIX系统修改文件系统的方法
- window.open() 打开IE缓慢的原因
- no input file specified 三种解决方法
- outlook设置京东邮箱
- [UVA 202]Repeating Decimals
- 关于网易2018实习生招聘的“道路布灯”问题
- 我将进化成一条狗(9)——基因治疗
- 包机制、访问修饰符、Jar包 java初学 面向对象五
- 同步fifo与异步fifo
- OSChina Maven使用说明
- python彩色蟒蛇绘制方向_Python绘制彩色蟒蛇
- AAAI‘22 推荐系统论文梳理
热门文章
- leetcode算法题--会议室★★
- 系统相机裁剪比例_《零基础轻松学会PS》二章第3节:裁剪工具的使用方法
- Spring Boot 发起 HTTP 请求
- F - Tmutarakan Exams URAL - 1091 -莫比乌斯函数-容斥 or DP计数
- Yii2 HOW-TO(3):调试工具yii2-debug和Xdebug(失败)
- 分布式事务 TCC-Transaction 源码分析 —— 项目实战
- 【BZOJ】3224: Tyvj 1728 普通平衡树
- 如何修改dedecms专题目录默认名称special
- 使用Gson 解析json
- ubuntu 下安装 VIM 依赖vim-common错误