我是靠谱客的博主 大气导师,最近开发中收集的这篇文章主要介绍netty连接nbiot_Java-彻底弄懂netty-程序员深入Nio之SocketChannel基础-知识铺,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

原标题:Java-彻底弄懂netty-程序员深入Nio之SocketChannel基础-知识铺

知识铺: 致力于打造轻知识点,持续更新每次的知识点较少,阅读不累。不占太多时间,不停的来唤醒你记忆深处的知识点。

一、Socket与NioSocket

1.1 普通Socket 一个连接独占一个线程。

1.2 NioSocket 引入selector一个线程对应多个连接。

1.3 普通socket资源利用率不高,如果某个socket延迟,服务端对应的线程就会等待,服务器线程是有限的,也很昂贵的资源。

1.4 优化普通socket也只是有限的的提升,如下图:

本质上还是一个socket对应一个socket

1.5 NioSocket 引入三个概念。

Buffer:合并多个请求包,一次性发送。

Selector:多路选择器,可以应对多个客户端请求。

Channel:真正处理和响应的是通道。

二、SocketChannel 是什么

2.1 SocketChannel是一个socket套接字。

2.2 连接网络协议:TCP。

2.3 主要处理网络I/O通道。

2.4 实现可选择通道或被多路复用通道。

三、SocketChannel 特点

3.1 已连接的socket无法创建SocketChannel。

3.2 open只是创建channel通道,并没进行网络连接。

3.3 connect连接远程地址

3.4 无连接channel不能进行I/O(read(),write())

抛出异常 NotYetConnectedException

isConnected():测试下网络是否建立连接。

isConnectedPending():连接是否在信道上发起。

finishConnect():非阻塞下需要该接口进行通道确认。

3.5 SocketChannel 支持两种I/O:阻塞与非阻塞

3.6 SocketChannel 特定参数如下:

Nagle算法在网络带宽有限,引出来的算法。当下网络带宽宽裕,不需要,一般该算法是默认关闭的,所以目前的TCP/IP协议栈默认将Nagle算法关闭,即通过SO_NODELAY = 1。

感觉有收获给点个赞,给小编动力。如果没有收获,请评论区狠狠的批评,给小编更大的动力。返回搜狐,查看更多

责任编辑:

最后

以上就是大气导师为你收集整理的netty连接nbiot_Java-彻底弄懂netty-程序员深入Nio之SocketChannel基础-知识铺的全部内容,希望文章能够帮你解决netty连接nbiot_Java-彻底弄懂netty-程序员深入Nio之SocketChannel基础-知识铺所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部