2022年3月20日12:55:53

所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲。套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议根进行交互的接口。

如图下所示:知乎中某位大佬的图

 

上面的是网络上找到的套接字简介和套接字概述图

套接字的组成:

网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。

当两台电脑进行通讯时:通信的两端都要有Socket(套接字),是两台机器键的通信的端点。

网络通信就是Socket键的通信。

Socket允许程序把网络连接当成一个流,数据在两个Socket间通过IO传输。

一般主动发起通信的应用程序属客户端,等待通信请求的为服务端。

套接字分两种:

   流套接字:使用TCP提供可依赖的字节流服务

   数据报套接字:使用UDP提供“尽力而为”的数据报服务。

TCP通信

使用TCP协议前,必须建立TCP连接,形成传输数据通道

传输前,采用“三次握手”方式,点对点通信,是可靠的

TCP协议进行通信的两个应用进程:客户端,服务端。

在连接中可进行大数据两的传输

传输完毕,需释放已建立的连接,效率低

UDP

将数据,源,目的封装成数据包,不需要建立连接

每个数据报的大小限制在64K内

发送不管对方释放准备好,接收方收到也不确认,故是不可靠的

可以广播返送

发送数据结束是无需释放资源,开销小,速度快。

工作流程:

要通过互联网进行通信,至少需要一对套接字,其中一个运行于客户端,我们称为 Client Socket(客户套接字),另一个运行于服务器端,我们称为Server Socket(服务器端)

根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:

  1. 服务器监听。
  2. 客户端请求,
  3. 连接确认。
  1. 服务器监听:

所谓服务器监听,是指服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。

  1. 客户端请求:

所谓客户端请求,是指有客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。

  1. 所谓连接确认:

所谓连接确认,是指当服务器端套接字监听到或者说街道客户端套接字的连接请求,就会响应客户端套接字的请求,建立一个新的线程,并把服务器套接字的描述发送给客户端。一旦客户端确认了此描述,连接就建立号了。而服务器端套接字继续处于监听状态,接收其他客户端套接字的连接请求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值