C ++ Должны ли какие-либо параметры сокетов быть установлены с помощью setsockopt ()?(Простой запрос POST сокета) - PullRequest
0 голосов
/ 22 сентября 2018

В настоящее время в моем приложении C ++ я проверяю подлинность клиента, создавая простой запрос POST, затем отправляя его на мой веб-сервер (все данные шифруются во время передачи) через сокет C ++, затем получая и обрабатывая ответ.Процесс создания соединения и отправки / получения ответа от моего сервера выглядит так: (обработка ошибок и другой код был удален, это все важный код, относящийся к вопросу)

createSocket = socket(AF_INET, SOCK_STREAM, 0);
connect(createSocket, (struct sockaddr *)&sock_t, sizeof(sock_t));
send(createSocket, POSTRequestSend, strlen(POSTRequestSend), 0);
recv(createSocket, responseBuffer, 6000, 0);

Так что это прекрасно работает, но мой вопрос заключается в том, должен ли я применять любые параметры сокетовчерез setsockopt () к моему сокету?В связи с тем, что я получаю и отправляю только небольшие фрагменты данных, мне было интересно, есть ли какие-либо опции сокетов, которые могут помочь улучшить производительность, или есть ли какие-либо опции сокетов, которые я вообще должен использовать?

Т.е. у меня естьвидел несколько примеров того, как люди, создающие / отправляющие подобные запросы в мой, применяли эти параметры сокета:

int on = 1;
setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (const char *)&on, sizeof(int));

Так что, если бы я добавил это к своему коду сокета, он выглядел бы так:

int on = 1;
createSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
setsockopt(createSocket, IPPROTO_TCP, TCP_NODELAY, (const char *)&on, sizeof(int));
connect(createSocket, (struct sockaddr *)&sock_t, sizeof(sock_t));
send(createSocket, POSTRequestSend, strlen(POSTRequestSend), 0);
recv(createSocket, responseBuffer, 6000, 0);

Будет ли какая-либо польза от установки этих опций сокетов?Или есть какие-либо другие параметры сокетов, которые я должен использовать, основываясь на том, что я отправляю только запрос POST с небольшим количеством отправленных / полученных данных.

...