【问题标题】:Understanding of getpeername functiongetpeername函数的理解
【发布时间】:2020-04-13 03:33:14
【问题描述】:

我正在阅读this 文档:

int getpeername(int sockfd, struct sockaddr *addr, socklen_t *addrlen);

getpeername() 返回连接到套接字的对端地址 sockfd

问题

  1. 如果我在服务器计算机上,并且有“服务器”和许多“客户端”连接到 sockfd,它将返回什么地址?
  2. peer 在这种情况下是什么意思?

【问题讨论】:

    标签: c sockets unix networking


    【解决方案1】:

    “对等点”是您的套接字连接到的套接字。

    如果您在服务器套接字上使用它,我会假设它会返回错误。我没有测试过这个。如果您在多个客户端连接套接字之一上使用它,它会返回该客户端的地址。

    【讨论】:

      【解决方案2】:

      如果我在服务器机器上,并且我有“服务器”和许多“客户端”连接到 sockfd,它将返回什么地址?

      • 当你连接一个有很多客户端的服务器socket时,这些连接是分开处理的,所以每次打开一个连接或者一个文件描述符被激活时,都会返回那个客户端socket的socketfd。

      • 处理多个客户端的简单方法是为连接到服务器的每个新客户端生成新线程。如果您不知道如何编写、调试和维护多线程,强烈建议不要使用此方法。或者,也许正如 here 所建议的那样,您可以使用一些 linux 函数来处理这些连接。

      peer 在这种情况下是什么意思?

      • peer 是直接连接到您设备的任何设备,您可以在techterms 上找到它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-22
        • 2011-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多