gpt4 book ai didi

c - C连接值重新分配中的TCP/IP

转载 作者:可可西里 更新时间:2023-11-01 02:45:11 24 4
gpt4 key购买 nike

我正在从事 TCP/IP 项目(服务器和许多客户端)。我完全用 C 编写了代码。我观察到每当新客户端连接到服务器时,函数 accept() 都会为该特定连接返回一个数字。

  newton = accept(mysocket, (struct sockaddr *)&dest, &socksize)
上面代码中的

newcon对于不同的客户端是不同的。每当客户端断开连接时,分配给该断开连接的客户端的连接号就会消失。该号码根本不会分配给其他客户。如果服务器有很多用户,那么客户端会连接和断开很多次。所以数字继续增加(从 0 到更大的数字)。如果服务器连接了数百万个客户端,我应该如何处理?有什么办法可以再次重用连接号吗?

最佳答案

你误解了accept的返回值。它不是连接数,而是一个套接字描述符。 (在 *nix 平台上恰好是文件描述符,它是整数)。

如果先前分配的套接字之一关闭,则可以再次返回相同的数字 - 因此,为了保持可伸缩性,请确保在不再需要套接字后关闭套接字 - 无论如何这是正确的做法.

关于c - C连接值重新分配中的TCP/IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36917075/

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