当前,在我的C ++应用程序中,我通过创建一个简单的POST请求对客户端进行身份验证,然后通过C ++套接字将其发送到我的Web服务器(在传输过程中对所有数据进行加密),然后接收和处理响应。我如何与服务器建立连接以及如何向服务器发送响应/从服务器接收响应的流程如下:
(错误处理和其他代码已删除,这是与问题相关的所有重要代码)
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请求而应该使用的其他套接字选项。