gpt4 book ai didi

c - 如何让服务器保持开启状态?

转载 作者:太空宇宙 更新时间:2023-11-04 02:31:27 25 4
gpt4 key购买 nike

在c 中,如何在关闭客户端时让服务器保持打开状态? (假设服务器一次只处理 1 个客户端)。

我做了这样的事情:

服务器.c

while(1)
{
newsockfd = accept(sockfd, (struct sockaddr *) &cli_addr, &clilen);
while ((strcmp(buffer, "quit\n") != 0)
{
.....
}
close(newsockfd);
}

我的想法是,当客户端收到“退出”命令时,它将它发送到服务器,当服务器收到它时,第二个循环中断。它等待下一个客户。我的第一个连接工作正常,但第二个连接不起作用。有人可以解释为什么吗?或者有更好的方法吗?

具体例子会更好。提前致谢。

最佳答案

(好吧,评论拖得太久了……)

在内部 while 循环之前清除 buffer:

// ... setup, including bind listen ...
while(1)
{
newsockfd = accept(sockfd, (struct sockaddr *) &cli_addr, &clilen);
buffer[0] = 0; /* very important so we don't see data from previous clients */
while ((strcmp(buffer, "quit\n") != 0)
{
.....
}
close(newsockfd);
}
// ... shutdown, including close(sockfd)

关于c - 如何让服务器保持开启状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42742900/

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