【问题标题】:Debugging a socket c++ code and help me understand [duplicate]调试套接字 C++ 代码并帮助我理解 [重复]
【发布时间】:2019-10-21 20:10:03
【问题描述】:

我有一个已经存在的代码(cuda c++),我想调试它,它使用 c++ 中的套接字,我不太确定它到底想做什么以及如何能够链接到特定地址?请帮我理解ai_family,ai_socktype,ai_protocol和其他方式是什么?

int sockfd = socket(host_info->ai_family, host_info->ai_socktype, host_info->ai_protocol);

    if (sockfd<0)
    {
        printf("can't create socket\n");
        return false;
    }

    if (connect(sockfd, host_info->ai_addr, host_info->ai_addrlen)<0)
    {
        printf("can't create connection\n");
        return false;
    }

【问题讨论】:

  • man 2 socket 可能会提供一些帮助,
  • 什么man 2 socket ??
  • 一个命令。看起来您正在使用 Posix 系统。这些通常附带安装的手册页 (man) - 因此,通过键入 man socketman 2 socket,您可以获得有关 socket 呼叫的一些帮助。
  • 能够检查 man 2 套接字,请帮助我用外行术语理解我的程序是做什么的?因为我不想知道一切。
  • 它看起来像是在创建一个客户端套接字并连接到一个服务器套接字。

标签: c++ sockets


【解决方案1】:

你可以google一下,MSDN有定义和使用示例。 Linux 肯定有它自己的帮助。只需寻找您需要的东西,因为有很多可能性,而经常使用的只有少数。

套接字有多种选择。

地址版本:ipv4 和 ipv6。 套接字类型:udp、tcp 等。

我相信也有非网络套接字吧?

每个选项都会极大地改变套接字需要执行的操作。

【讨论】:

  • 如果这是一个答案,它将解释ai_familyai_socktypeai_protocol 是什么。
猜你喜欢
  • 1970-01-01
  • 2010-11-12
  • 2011-02-21
  • 1970-01-01
  • 1970-01-01
  • 2010-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多