使用套接字发送数据的最佳方法是:
方法1:每次需要发送数据时创建一个新套接字,并在传输完成时关闭它。
方法2:使用相同的套接字而不是创建新套接字并在等待新数据时保持连接。
答案 0 :(得分:4)
这取决于套接字的类型,但在通常情况下,除非资源非常有限,否则最好保留套接字。
总结:如果您使用的是TCP,那么只有当您缺少必要的资源才能保持打开时,几乎总是更好地保持套接字打开并关闭它。一个好的折衷方案是只要你在套接字上有足够的活动就关闭套接字。这是通常使用HTTP持久连接完成的方法。
答案 1 :(得分:0)
这取决于。创建新套接字意味着两台计算机必须相互发现,因此需要进行名称查找,TCP / IP路由和资源分配。不是很便宜,但也不贵。除非您发送的数据超过10次/秒,否则您将无法注意到。
如果您打开套接字并且暂时不发送数据,则两台计算机之间的防火墙最终将确定此连接是陈旧的并且忘记它。您发送的下一个数据包将因超时而失败。
因此,两种方法的主要区别在于您是否可以在代码中正确处理超时情况。每次将数据写入套接字时都必须处理此问题。
在许多情况下,写入的代码在某处隐藏得非常深,并且代码实际上并不知道它写入套接字加上你将有多个地方写入数据,所以错误处理将泄漏到您的设计中。这就是为什么大多数人都喜欢每次创建一个新的插座,即使它有点贵。