0

重新学习 C++ 并且对套接字相当陌生。我有一个可以正确连接的 Python 应用程序和一个可以正常工作的 .NET 应用程序。

我需要调用的 URL 是domain.com:8080/signalr. 我正在遵循似乎是一个标准示例,例如:

if ((rv = getaddrinfo("www.domain.com", PORT, &hints, &servinfo)) != 0) {

...但无论我尝试什么,我都会得到name or service unknown

  • 打电话是domain.com/signalr:8080不行的。
  • 我试着让 PORT 为空

如果这很重要,这将在 Raspbian (Debian) 上运行。

任何建议将不胜感激。

4

1 回答 1

4

什么getaddrinfo()是名称解析。它没有实现 HTTP 协议。此外,它不知道如何解析 URL,您必须自己做。

正确的电话应该是这样的:

getaddrinfo("www.Domain.com", "8080", ...);

这将返回struct sockaddr*调用connect()和执行所有套接字操作的权利。

如果您想要一个为您执行所有 HTTP 协议的函数,您将需要一个更高级别的库。我推荐libcurl

于 2014-05-09T19:53:21.000 回答