gpt4 book ai didi

c++ - 每个连接需要多少套接字?

转载 作者:行者123 更新时间:2023-11-28 03:20:05 25 4
gpt4 key购买 nike

假设我们有一个带有 socket sa 和 new_socket 的服务器程序。我正在使用的教程采用 socket sa 和 new_socket,以及名为 serverclient 的两个 sockaddr_in 结构;然后将套接字绑定(bind)到 IP 地址:端口,然后调用 listen() 函数。当listen返回时,程序调用

new_socket = accept(sa, (struct sockaddr*)&client, &length);

我的问题是,假设有 3 个人正在连接...我是否需要为每个 accept 函数提供 3 个不同的结构和 3 个不同的 new_sockets,比如说我是否希望我的服务器为连接到它的 3 个不同的客户端提供服务?

此外,为什么我们需要一个用于accept 的new_socket?为什么有两个不同的套接字 1 用于 bind 和 1 用于 accept?套接字操作不应该在 binded 上执行吗?

我正在尝试为套接字实现一个类,以使其对我来说更容易,并且作为练习我的 oop 技能的好方法....

最佳答案

服务器通常需要一个 socket 。您可以在该套接字中设置服务器正在监听的端口,并调用 accept() 以等待传入连接。

此外,每个客户端连接都需要一个套接字。这是一个由 accept() 返回的新套接字。这是必要的,因为服务器可以处理多个客户端。如果你对所有事情都使用一个套接字,就没有办法告诉你哪个客户端正在向你发送消息,或者指示向哪个客户端发送回复。

关于c++ - 每个连接需要多少套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15713582/

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