在getaddrinfo中使用url:port / url进行c ++套接字编程

时间:2014-05-09 19:38:30

标签: c++ sockets getaddrinfo

重新学习C ++并且对套接字来说相当新。我有一个正确连接的Python应用程序和一个有效的.NET应用程序。

我需要调用的网址是domain.com:8080/signalr。我跟随的似乎是standard example,例如:

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

...但无论我尝试什么,我都会得到名称或服务未知

  • 调用domain.com/signalr:8080将无效。
  • 我尝试离开PORT null

如果重要的话,这是在Raspbian(Debian)上运行的。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:2)

getaddrinfo()的作用是名称解析。它不实现HTTP协议。此外,它不知道如何解析URL,你必须自己做。

正确的电话将是:

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

这会返回正确的struct sockaddr*来调用connect()并执行所有套接字的操作。

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