Почему я не могу повторно использовать сокет http-клиента в веб-клиенте C, поскольку я не звоню close(http_socket_fd)
?Первая запись / чтение в дескриптор файла сокета работает отлично.Любое / все последовательные чтения возвращают ноль (вряд ли какая-либо ошибка).
По сути, я не хочу продолжать воссоздавать новые сокеты клиентских подключений на том же хосте для последовательных запросов.Разве в C невозможно повторно использовать открытый клиентский сокет (для которого уже включена поддержка HTTP-активности) для последовательных операций чтения / записи?Кажется возможным с Java http://www.mail-archive.com/httpclient-dev@jakarta.apache.org/msg04687.html
Example: (PSEUDO_CODE)
MANY_DOMAINS=30,000;
//initial connection
do{
http_socket_to_domain_x=open(NEW_TCP_SOCKET_PER_DOMAIN);
get(initial_url_path);
read(http_socket_to_domain_x,initial_http_response);
} while(EACH_DOMAIN)
for(LIST_OF_URLS FROM EACH_DOMAIN);
//successive connections - NO RECREATING TCP SOCKET!
do{
get(another_url_path);
read(http_socket_to_domain_x,another_http_response);
} while(EACH_URL_PER_DOMAIN)
//finally
close(http_socket_to_domain_x);