0

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

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

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

另外,为什么我们需要一个 new_socketaccept呢?为什么有两个不同的插座 1 forbind和 1 for accept?不应该在binded 上执行套接字操作吗?

我正在尝试为套接字实现一个类,以使我更轻松,并作为练习我的 oop 技能的好方法......

4

1 回答 1

2

通常,您需要一个用于服务器的套接字。此套接字是您设置服务器正在侦听的端口并调用accept()以等待传入连接的位置。

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

于 2013-03-30T00:46:39.877 回答