программирование сокетов c ++ с помощью url: port / url в getaddrinfo

Переучивает C ++ и довольно плохо знаком с сокетами. У меня есть приложение Python, которое правильно подключается, и приложение .NET, которое работает.

URL мне нужно позвонить domain.com:8080/signalr, Я следую за тем, что кажется стандартный пример, например.:

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

…но независимо от того, что я пытаюсь, я получаю имя или услуга неизвестна.

  • призвание domain.com/signalr:8080 не будет работать.
  • Я пытался оставить порт пустым

Это работает на Raspbian (Debian), если это имеет значение.

Любые предложения будут ценны.

0

Решение

Какие getaddrinfo() делает это разрешение имени. Он не реализует протокол HTTP. Кроме того, он не знает, как анализировать URL, вы должны сделать это самостоятельно.

Правильный вызов будет что-то вроде:

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

И это вернет право struct sockaddr* звонить connect() и делать все вещи сокетов.

Если вам нужна функция, которая выполняет весь HTTP-протокол, вам понадобится библиотека более высокого уровня. рекомендую libcurl.

2

Другие решения


По вопросам рекламы [email protected]