std::string HTTPrequest = "GET /index.html HTTP/1.1\r\nHost: www.yahoo.com\r\nConnection: close\r\n\r\n";
write(socket, HTTPrequest.c_str(), sizeof(HTTPrequest));
char pageReceived[4096];
int bytesReceived = read(socket, pageReceived, 4096);
У меня есть клиентская программа HTTP, которую я запускаю со своего терминала. У меня также есть программа для веб-сервера. Используя веб-сервер в качестве теста, я могу убедиться, что создание и вложение сокета работает правильно.
Я создаю запрос, как показано выше, затем записываю в сокет. Используя операторы print, я вижу, что код выходит за пределы вызова write. Тем не менее, он зависает при вызове чтения.
Я не могу понять, что происходит - мое форматирование выглядит правильно по запросу.
Есть идеи? Кажется, что все работает отлично, когда я подключаюсь к своему веб-серверу, но и www.yahoo.com, и www.google.com вызывают зависание. Я на Linux.