这是一个更大的开销:每次创建一个新的套接字或维护一个用于数据传输的套接字

ami*_*per 4 python sockets networking

哪种是使用套接字发送数据的最佳方法:

方法一:每次需要发送数据时创建一个新的socket,传输完成后关闭。

方法二:使用同一个socket,而不是创建一个新的socket,即使在等待新数据时也保持连接。

Ste*_*ich 5

这取决于套接字的类型,但在通常情况下,最好保留套接字,除非您的资源非常有限。

  • UDP 是无连接的,即您创建套接字并且在发送数据包时没有由于连接设置而导致的延迟。但是仍然涉及系统调用和分配内存等,所以它便宜但不是免费的。
  • 相反,TCP 需要在您甚至可以开始发送数据之前建立连接。这完成的速度取决于延迟,即在本地机器上快,在本地网络上慢,在互联网上更慢。此外,连接启动缓慢,因为尚不知道可用带宽。
  • 在 TCP 连接设置之上使用 SSL/TLS 更加昂贵,因为它需要在客户端和服务器之间进行更多的往返。

总结:如果您正在使用 TCP,您几乎总是最好保持套接字打开并仅在您缺乏保持其打开所需的资源时才关闭它。一个很好的折衷方法是只要套接字上有足够的活动就关闭套接字。这是通常使用 HTTP 持久连接完成的方法。