gpt4 book ai didi

c - 管理连接到多个主机的套接字

转载 作者:行者123 更新时间:2023-11-30 17:29:07 24 4
gpt4 key购买 nike

我有一个像服务器一样工作的程序( listen() s、 bind() s 和 accept() s 来自其他 IP 中相同程序的多个连接),同时像 UNIX 一样接受用户输入外壳。

用户输入的是命令,有一个命令 CONNECT具有地址和端口号规范。

我想让它连接到多个主机,我想我必须为每个连接使用一个套接字。

当我在 CONNECT 上创建套接字时来自用户的请求,我如何管理这些套接字?

我应该使用全局 array套接字并在建立连接时创建并向其添加套接字?

最佳答案

我假设您想在服务器中管理多个客户端。正确的?

因此,您必须全局获取一些预定义的套接字数组,然后为每个套接字提供服务

例如。

long accept_sock[10];//This should be global
//initilize it with -1 at entry point
while(1)
{
struct sockaddr client; /* for BSDish accept() call */
int clientsize;
clientsize = sizeof(struct sockaddr_in);
long sock ;

for(int i=0;i<10;i++)
{
if(accept_sock[i] == -1)
{
sock= accept(server_sock, &client, &clientsize);

if(sock != -1)
{
acepct_sock[i] =sock;
break;
}
}
}

for(int i=0;i<10;i++)
{
if(accept_sock[i] != -1)
{
//do process
}
}
}

关于c - 管理连接到多个主机的套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25779479/

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