【BIOS实战】

文章目录

  • 网络通信编程基本常识
  • Java原生网络编程-BIO

网络通信编程基本常识

什么是Socket?
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口,一般由操作系统提供。
在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议处理和通信缓存管理等等都隐
藏在Socket接口后面,对用户来说,使用一组简单的接口就能进行网络应用编程,让Socket去组织数
据,以符合指定的协议。主机 A 的应用程序要能和主机 B 的应用程序通信,必须通
过 Socket 建立连接。
客户端连接上一个服务端,就会在客户端中产生一个socket接口实例,服务端每接受一个客户端连
接,就会产生一个socket接口实例和客户端的socket进行通信,有多个客户端连接自然就有多个
socket接口实例。

短连接
连接->传输数据->关闭连接 传统HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就
建立一次连接,但任务结束就中断连接。 也可以这样说:短连接是指SOCKET连接后发送后接收
完数据后马上断开连接。
长连接
连接->传输数据->保持连接 -> 传输数据-> 。。。 ->关闭连接。 长连接指建立SOCKET
连接后不管是否使用都保持连接。
什么时候用长连接,短连接?
长连接多用于操作频繁,点对点的通讯。每个TCP连接都需要三步握手,这需要时间,如
果每个操作都是先连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,下次处
理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的连接用长连接, 如果用短连接频繁
的通信会造成socket错误,而且频繁的socket 创建也是对资源的浪费。
而像WEB网站的http服务按照Http协议规范早期一般都用短链接,因为长连接对于服务端来说会
耗费一定的资源,而像WEB网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源。
但是现在的Http协议,Http1.1,尤其是Http2、Http3已经开始向长连接演化。

总之,长连接和短连接的选择要视情况而定。
网络编程里通用常识
我们首先来看一个生活中的场景。周瑜老师准备开一个心理咨询中心,嘴上光喊没用,只有到工商
局注册“东吴心理诊所”并且在图灵大街888号挂牌了,才算正式开张。疫情来了,准备开展电话业
务,申请了一个电话号码88888888。诸葛老师有了心理问题,于是打电话过来,周瑜老师接了电话,
但是周瑜老师不懂心理咨询,于是通过内部分机把电话转给请来的心理医生A负责接待诸葛老师,心理
医生A和诸葛老师通过电话进行沟通,模式一般就是一个人说另个一人听,两者进行沟通交流。Fox老
师也来了,周瑜老师接了电话,又把电话转给请来的心理医生B负责接待Fox老师,心理医生B和Fox老
师也通过电话进行沟通。

Java原生网络编程-BIO

原生JDK网络编程BIO
BIO,意为Blocking I/O,即阻塞的I/O。
BIO基本上就是我们上面所说的生活场景的朴素实现。在BIO中类ServerSocket负责绑定IP地址,启
动监听端口,等待客户连接;客户端Socket类的实例发起连接操作,ServerSocket接受连接后产生一
个新的服务端socket实例负责和客户端socket实例通过输入和输出流进行通信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值