gpt4 book ai didi

c - 关于套接字和 accept() 的一些问题

转载 作者:太空狗 更新时间:2023-10-29 15:28:30 24 4
gpt4 key购买 nike

假设我们已经使用 socket() 创建了一个套接字,然后我们使用了 bind()listen()。然后我们使用 accept() 来等待客户端请求,客户端连接后如果我们关闭服务器(例如我们 ctrl+c 进程)。

  1. 客户端是否仍然连接到端口?
  2. 我们能否以某种方式重新建立与套接字的连接?
  3. 这也是客户端问题吗?还是 recvfrom() 等待某人绑定(bind)回套接字?

最佳答案

我假设您使用的是 TCP。

If we shutdown the server:

  1. 客户端是否仍然连接到端口?

    没有。服务器端的操作系统会注意到服务器已终止,并会关闭连接,向客户端发送一个数据包来结束连接。即使这没有发生(例如网络故障),连接也不再可用,客户端第一次发送内容时,它会意识到连接丢失了。一些程序使用 TCP Keep-Alive 或发送心跳消息来确保它们注意到服务器是否消失。

  2. 我们能否以某种方式重新建立与套接字的连接?

    没有。客户端需要建立新的连接。

  3. 这也是客户端问题吗?还是 recvfrom() 等待某人绑定(bind)回套接字?

    recvfrom() 不会以这种方式等待。服务器不能按照您暗示的方式“重新连接”或“重新绑定(bind)”。客户端需要通过显式重新连接来响应断开连接。

关于c - 关于套接字和 accept() 的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42047506/

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