RPC是什么?和HTTP区别?

RPC 是什么?HTTP 是什么?

作为一个程序员,假设我们需要从A电脑的进程发送一段数据到B电脑的进程,我们一般会在代码中使用 Socket 进行编程。

在这里插入图片描述

此时,可选性一般就是 TCP 和 UDP 二选一,由于 TCP 可靠、UDP 不可靠,只要对可靠性有要求,一般就选 TCP 了。

Socket 本质是个代码库,我们需要先创建类似于:

在这里插入图片描述

其中 SOCK_STREAM是指使用字节流传输数据。说白了就是 TCP 协议。

在这里插入图片描述

在定义了 socket 之后,我们就可以对这个 socket 进行操作。
比如使用 bind() 方法绑定 IP 端口;
connect() 方法发起建联,里面就包含了常见的 TCP 三次握手流程;
在建立连接之后就可以使用 send() 方法发送数据;
accept() 方法接收数据。

在这里插入图片描述

光这个“纯裸”的 TCP 连接就可以收发数据了,那是不是就够了?

不行。

八股文常背 TCP 有三个特点:面向连接、可靠、基于字节流。

在这里插入图片描述

在这里插入图片描述

这里关注“基于字节流”,字节流可以理解为双向通道里流淌的二进制数据,就是一堆“01”串。“纯裸”的 TCP 连接收发的这些“01”串是没有任何边界的,你无法知道一条完整消息的起始位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值