C++ 对于频繁的请求,最好保持套接字打开,还是每次关闭套接字

C++ 对于频繁的请求,最好保持套接字打开,还是每次关闭套接字,c++,sockets,qtcpsocket,C++,Sockets,Qtcpsocket,我正在写一个程序,它将在一秒钟内完成一个服务器的GET请求。我正在使用一个套接字(QTcpSocket),我想知道是否应该在请求中包含“连接:关闭”,然后为每个请求重新创建套接字,或者是否最好保持套接字活动,因为我每秒重复一次相同的请求。建立TCP连接需要多次往返。如果您的连接恰好是SSL连接,那么还有几个往返。如果您计划多次与同一个目的地通信,那么在目的地仍处于运行状态时建立连接并使用它可能会有回报。您可能应该使您的代码使发送请求独立于当前正在建立的连接,并在需要时让它[重新]建立连接。打开套

我正在写一个程序,它将在一秒钟内完成一个服务器的GET请求。我正在使用一个套接字(QTcpSocket),我想知道是否应该在请求中包含“连接:关闭”,然后为每个请求重新创建套接字,或者是否最好保持套接字活动,因为我每秒重复一次相同的请求。

建立TCP连接需要多次往返。如果您的连接恰好是SSL连接,那么还有几个往返。如果您计划多次与同一个目的地通信,那么在目的地仍处于运行状态时建立连接并使用它可能会有回报。您可能应该使您的代码使发送请求独立于当前正在建立的连接,并在需要时让它[重新]建立连接。

打开套接字需要3次数据包交换,关闭它需要4次数据包交换。您应该致力于保持连接的开放性,而不是在每一笔交易中产生这种开销。

我想说的是保持连接的开放性。但最好的方法是对其进行基准测试,看看它对您的应用程序有什么影响。在高延迟链路(如卫星)上,您会发现持续连接/断开连接时,每秒1个请求是不可能的。