计算机网络segment和socket,[网络] 认识 socket

Socket是TCP/IP协议的封装,提供API供应用层进行网络通信。通信过程包括服务器监听、客户端请求和连接确认。Socket特点是长连接,能传输任何类型的数据,并且可以在同一台计算机的进程中进行通信。适合实时性要求高的场景和需要持久连接的服务,如推送通知。
摘要由CSDN通过智能技术生成

1460000023490371

1 什么是socket

Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议.

2 socket是如何通信的

首先,有一个服务端和一个客户端。连接过程分为三个步骤:服务器监听,客户端请求,连接确认。

1。服务器监听:服务端先设置好自己的IP地址和端口号,进入阻塞状态。服务器端socket并不定位具体的客户端socket,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。

2。客户端请求:客户端的socket指出服务端的IP地址和端口号,向服务端socket发出连接请求,把服务端从阻塞状态唤醒。

3。连接确认:当服务器端socket监听到或者说接收到客户端socket的连接请求时,就响应客户端socket的请求,建立一个新的线程,把服务器端socket的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接。

具体步骤如下:

下图描述了客户端和服务端交互过程。

bVbKGyC

3 socket特点

3.1 socket是长连接

HTTP也是用socket传输数据的。可是基于HTTP的连接是短连接,socket则不是,默认情况下,双方会一直保持联系。短连接:就是客户端请求一次后就主动会服务器断开连接。 连接->传输数据->关闭连接

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

HTTP也可以建立长连接的,使用Connection:keep-alive,HTTP 1.1默认进行持久连接。

对于实时性要求高的场景,选择长连接。因为每次建立TCP连接都要三次握手,这个需要时间,如果每次都建立连接会降低速度。

像web网站一样的http服务一般都用短连接,这种服务的特点是,用户并发量大,可是每个用户无需频繁操作,使用短连接就能满足要求,使用长连接反而会消耗资源。

3.2 socket可以传输任何内容

socket传输的是字节流,而任何文件都可以作为字节流进行传送,不管是文本文件还是二进制文件,所以说socket可以传输任何内容。

当我们做推送的时候,需要终端和服务器建立一条长连接,以便服务器可以随时推送消息,这时候结合3.1和3.2的特点,选择socket是比较合适的。

3.3 不仅可以和别的计算机通信,还可以作为不同进程通信的方式

socket不光可以链接两台不同的计算机,同一台计算机上的两个进程也可以通过socket找到对方然后进行通信。在一般的操作系统中,同一个计算机中的两个进程是相互隔离的,如果两个进程需要进行通信,则可以选择一个作为socket的服务端,一个作为socket的客户端。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值