一般来说,协议和接口有什么区别?

Emi*_*ily 9 protocols interface network-protocols

我理解接口是一组公开的事物,一个系统可以使用它们与其他系统进行交互。我正在阅读有关 WEBRTC 协议的内容,为了了解什么是协议,我查阅了维基百科定义。它或多或少地表示协议是允许两个系统进行通信的规则系统。这不是和界面一样吗?也许我不理解其中之一或两者。

Eni*_*ity 5

接口定义两个实体如何通信。协议定义了它们应该如何通信以及通信的含义。

这是一个界面:

public interface ICommunicate
{
    string SendMessageAndGetResponse(string message);
}
Run Code Online (Sandbox Code Playgroud)

那么协议可能是:

发送“你好”,如果你回复“嗨”,则发送“你好吗?” 响应将是一个状态。如果您从初始消息中返回除“Hi”以外的任何内容,则系统无法正常运行,您必须发送消息“Reboot”,然后您将收到“Rebooted!” 如果成功,则失败。


Eve*_*ert 0

我认为在某些方面“接口”这个词也可以用于此目的(特别是 API 中的 I),但通常在谈论我们通过网络发送的内容时,常用词是协议。

当您足够深入地研究单词的确切定义时,有时会发现其含义和差异会有点模糊。

但为了避免超精确的语义,API/接口往往比协议级别更高一些。