gpt4 book ai didi

c - 如何拒绝 C 中的套接字连接?

转载 作者:太空狗 更新时间:2023-10-29 16:29:35 26 4
gpt4 key购买 nike

如果我想接受一个连接,我调用accept,但是我怎么能拒绝一个连接呢?

在工作套接字回显客户端中,我有这个 if 语句。在回显服务器中,如何使回显客户端到达此 printf 语句?

...
if (connect(sock, (struct sockaddr *) &server, sizeof(server)) < 0) {
printf("Connecting failed\n");
return 1;
}
...

最佳答案

要获得您想要的行为(一次只接受一个连接,其他尝试的客户端应该会失败),有两种选择。

  • 您可以在接受连接后关闭监听套接字。在接受的连接关闭后重新创建您的监听套接字。

  • 如果已有连接在进行中,您可以关闭新建立的连接。如果您希望客户端看到 TCP 重置,如果您启用超时为 0 的 linger 选项,大多数 TCP 堆栈将触发一个。

    struct linger lo = { 1, 0 };
    setsockopt(s, SOL_SOCKET, SO_LINGER, &lo, sizeof(lo));
    关闭(s);

关于c - 如何拒绝 C 中的套接字连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16590847/

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