сокет, открытый для http URL и получения данных - PullRequest
1 голос
/ 20 сентября 2010

Я хотел бы открыть сокет для http url (https://www.abc.co.uk:8433/open/url/client?username=123&password=456), используя сокет и методы connect и recv для socket.h.

Проблемы заключаются в том, что URL использует порт 8433, аоставшийся URL (/ open / url / client? username = 123 & password = 456). Также используется https url.

Доза, кто-нибудь знает, как это сделать? Давным-давно, я сделал стандартное C-кодирование, я забыл.

int sock;

char url[1024];

struct sockaddr_in client;
struct hostent *h;
if ((sock = socket(AF_INET,SOCK_STREAM,0)) == -1)
{ 
    perror("socket:");
    return;
}

sprintf(url, "https://www.abc.co.uk:%d/open/url/client?username=123&password=456", 8443);

client.sin_family = AF_INET;
client.sin_port = htons(8443);
h = gethostbyname(url);   
client.sin_addr.s_addr = inet_addr(h->h_addr_list[0]);

1 Ответ

5 голосов
/ 20 сентября 2010

Если вы хотите установить HTTPS-связь, я думаю, вы не хотите реализовывать ее самостоятельно - или как вы ожидали безопасного взаимодействия с сервером?

В этом случае ярекомендую использовать libcurl , который имеет отличную поддержку протоколов и поддерживает шифрованные соединения через OpenSSL.

...