Socket

Socket是网络通信的基础API,它允许不同主机的应用通过指定的IP地址和端口号进行通信。端口号用于区分主机上的不同应用。常见的Socket类型包括UDP和TCP。UDP以报文为单位,速度快但不保证数据可靠性;而TCP提供可靠的数据传输,确保数据的一致性,采用客户端-服务器模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

socket 是一套用于不同主机通信的API它工作在我们的TCP/IP协议栈之上 他的应用无处不在 

比如说你的浏览器,手机应用,用于服务器管理的SSH客户端,全都是基于socket实现的,要通过socket与不同主机建立通信,我们只需要指定主机的IP地址和一个端口号,IP地址用于唯一标识你的网络设备

 

 那我们为什么还要额外指定一个端口号呢,如果没有端口操作系统则没有办法区分数据到底应该发送到哪一个应用上 ,因此端口主要区分主机上的不同应用

 通过socket我们可以建立一条用于不同主机,不同应用之间的虚拟数据甬道,并且他是点对点的,一个形象的比喻是将一条数据线链接在不同应用的插槽上,这也是socket名字的由来

 

 我们经常用到的socket有两种类型

        第一种就是UDP(用户报文协议):

                与TCP相反,UDP正如他的名字以报文(Datagram)为单位来收发数据,并且UDP不会回传丢失数据包,因此不保证数据一定会被接收到,正是缺少了这一检查,UDP通常更具有更低的延迟并占有更少的系统资源

        第二种就是TCP(传输控制协议):

                首先TCP协议是可靠的他的底层会自动检测并回传丢失的数据包,因此对调用这来说你发送的数据对方一定能接收到

 其次发送的数据和接受到的数据都是一致的,比如你发送了一串字符,对方就会原封不动的收到同样的字符。这就是为什么大家说TCP是基于“数据流”的协议。

TCP要求收发数据的双方扮演不同的角色:服务器和客户端,服务器会被动的等待客户端的链接,他自己不会主动发起请求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值