Sockets 套接字创建和删除过程是否非常昂贵?

Sockets 套接字创建和删除过程是否非常昂贵?,sockets,client-server,Sockets,Client Server,我正在开发一个客户机/服务器应用程序。我已经为此准备了许多文章,并发现了一个非常常见的说法,即“创建/删除套接字对于使用系统资源来说是非常昂贵的过程”。但没有解释它是如何消耗这么多资源的。 有人能对此略知一二吗?创建套接字很便宜。连接它实际上创建了连接,这与创建底层连接(特别是TCP连接)的成本差不多。TCP连接建立需要三向TCP握手步骤。保持连接处于活动状态主要需要内存和连接。网络连接是一种受操作系统限制的资源(例如,端口上的套接字数量) 如果您使用的是线程模型,则需要额外的线程创建资源 我

我正在开发一个客户机/服务器应用程序。我已经为此准备了许多文章,并发现了一个非常常见的说法,即
“创建/删除套接字对于使用系统资源来说是非常昂贵的过程”
。但没有解释它是如何消耗这么多资源的。

有人能对此略知一二吗?

创建套接字很便宜。连接它实际上创建了连接,这与创建底层连接(特别是TCP连接)的成本差不多。TCP连接建立需要三向TCP握手步骤。保持连接处于活动状态主要需要内存和连接。网络连接是一种受操作系统限制的资源(例如,端口上的套接字数量)

如果您使用的是线程模型,则需要额外的线程创建资源


我可以在Stackoverflow上找到一个类似于您答案“”的有用答案。和一篇有用的文章


我认为这对你有帮助

你可能正在读一本旧书。套接字创建只需要内核套接字数据结构的内存。