gpt4 book ai didi

C/Linux TCP 套接字服务器

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:31:04 26 4
gpt4 key购买 nike

我正在用 C 和 Linux 实现一个 TCP 套接字服务器。它将是一个同时处理许多请求的聊天服务器。这是它如何设置的伪代码

create a socket
bind to a well-known port
use listen to place in passive mode
while (1)
{
accept a client connection
fork
if (child)
{
communicate with new socket
close new socket
exit
}
else
{close new socket}
}

据我所知,“与新套接字通信”部分包括读取缓冲区,然后可能写入缓冲区,然后关闭套接字。我认为套接字应该是持久连接?如果客户端每次要向服务器发送更多数据时都必须重新连接,这不是效率低下并且违背了套接字的目的吗?

最佳答案

If the client has to reconnect every time it wants to send more data to the server, isn't this inefficient and defeating the purpose of sockets?

如果不进一步了解您的应用程序的性质,就不可能说:

  • 在某些情况下,在客户端的生命周期内保持持久连接是有意义的。

  • 在其他情况下,连接每条消息也很有效。

您在效率方面是完全正确的:建立 TCP 连接涉及大量开销。因此,如果消息很频繁,则为每条消息建立新连接的成本可能会非常高。

关于C/Linux TCP 套接字服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9174688/

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