编程语言应用

注册

 

发新话题 回复该主题

BIO实战NIO编程与直接内存零拷贝 [复制链接]

1#
北京市白癜风治疗医院 https://m.39.net/pf/bdfyy/tslf/

01什么是Socket?

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

客户端连接上一个服务端,就会在客户端中产生一个socket接口实例,服务端每接受一个客户端连接,就会产生一个socket接口实例和客户端的socket进行通信,有多个客户端连接自然就有多个socket接口实例。

短连接

连接-传输数据-关闭连接

传统HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。也可以这样说:短连接是指SOCKET连接后发送后接收完数据后马上断开连接。

长连接

连接-传输数据-保持连接-传输数据-。。。-关闭连接

什么时候用长连接,短连接?

长连接多用于操作频繁,点对点的通讯。每个TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,下次处理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的连接用长连接,如果用短连接频繁的通信会造成socket错误,而且频繁的socket创建也是对资源的浪费。

而像WEB网站的

分享 转发
TOP
发新话题 回复该主题