我正在编写一个应用程序,其中客户端应用程序需要通过服务器进行身份验证才能登录,并且每半小时发送一个数据包并接收一些信息,然后再睡半小时。
正确的方法是每次启动套接字并在发送和接收数据包后关闭。或者我应该始终保持打开和连接吗?。
将有100多个客户端同时运行,连接到服务器。
顺便说一下,发送的数据非常重要,它在MAX 5-10秒内发送和检索
答案 0 :(得分:2)
持续半小时的空闲连接很可能被某些路由器/防火墙杀死。建立TCP / IP连接会带来一些成本,但与每30分钟5-10秒相比,它可以忽略不计。
答案 1 :(得分:2)
当然,最好每次都打开一个新连接,然后立即关闭它。打开一个新的连接不需要很长时间,5-10秒的要求比这种方法更容易满足。
答案 2 :(得分:0)
通常我会打开TCP套接字,但这取决于服务器需要对这些连接执行的操作。在这种情况下,我可能会关闭它们。这是我经常遵循的经验法则:
如果您在每次客户端向服务器发送数据时进行身份验证,那么您的服务器可能很容易告诉“谁是谁”,并且您应该每次都能关闭它。
如果您的客户端仅在第一次向服务器发送数据时进行身份验证,并且您的服务器需要维护某些密钥到客户端连接的映射,那么最好保持连接处于打开状态。