gpt4 book ai didi

sockets - 套接字是应用程序通过 Internet 进行通信的唯一方式吗?

转载 作者:行者123 更新时间:2023-12-03 22:08:16 24 4
gpt4 key购买 nike

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

4年前关闭。




Improve this question




我的印象是套接字只是应用程序可以通过 Internet 进行通信的几种方式之一,这可能是因为我最近阅读的一些教程中的措辞,其中似乎套接字已被选为众多工具中最有效的工具工作。

这个假设是正确的还是所有网络应用程序都在某种程度上使用套接字?

编辑:澄清我正在寻找一个实用的答案。如果我想编写一些将在我的两台运行 Linux 或 Windows 的计算机上运行的客户端/服务器程序,我应该总是首先考虑套接字(或使用套接字的更高级别的协议(protocol)),还是有其他可能更适合的等价物工作比 socket 。

最佳答案

operating system具体的。一些(旧的或学术的)操作系统为 TCP/IP 提供了奇怪的 API。 ,有些操作系统甚至不做任何联网。 IIRC, Gnu Hurd除了套接字之外还有其他东西(可能Fuschia 也有其他东西)。

在实践中, Berkeley sockets一个事实上的标准 (情况并非总是如此,例如 TLI ),至少在类 Unix 和 POSIX 系统上(也可能在 Windows 上)以及用 C(或相关的东西,尤其是 C++)编程时。

您可以使用更高级别的库,例如MPI , 0mq , 或协议(protocol)特定的库(对于 HTTP,客户端的 libcurl,服务器端的 libonion,......)等.....它们通常构建在套接字之上。

do all networking applications use sockets on some level?



在某些 super 计算机上,您还可以拥有 InfiniBand (也许是 MPI 的一种变体,使用没有套接字的硬件,但有别的东西)。等等...有时他们有一些 InfinBand 特定的地址族 socket ……

(我已经十多年没有接触任何 super 计算机了,所以我可能会错的细节)

顺便说一句,一些财团如 FIWIREAUTOSAR定义自己的网络 API(针对利基市场或特定行业)。

(也许这样的联盟在套接字之上定义了一个 API;我不太了解它们;你需要检查)

另见 this answer 结尾处提到的库.

If I want to write some client/server program that will run on two of my computers running either Linux or Windows, should I always think sockets first (or higher level protocol that uses sockets),



在实践中当然是的。而且我经常会考虑使用一些现有的 free software伯克利 socket 上方的图书馆。

关于sockets - 套接字是应用程序通过 Internet 进行通信的唯一方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47794466/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com