我正在编写一个应用程序,客户端应用程序需要向服务器进行身份验证才能登录,每半小时发送一个数据包并接收一些信息,然后再休眠半个小时。
正确的方式是每次启动套接字,并在发送和接收数据包后关闭。或者我应该让它们始终保持开放和连接?
将会有100+客户端同时运行,并连接到服务器。
顺便说一句,发送的数据非常重要,它最多能在5-10秒内发送和检索
发布于 2012-03-31 06:26:07
当然,最好每次都打开一个新的连接,然后立即关闭它。使用这种方法,打开一个新的连接不需要很长时间,并且5-10秒的要求很容易满足。
发布于 2012-03-31 06:25:57
持续半小时的空闲连接很可能会被某些路由器/防火墙杀死。建立TCP/IP连接会带来一些开销,但与每30分钟5-10秒相比,这可以忽略不计。
发布于 2012-03-31 06:31:21
通常,我会让TCP套接字保持打开状态,但这取决于服务器需要如何处理这些连接。在这种情况下,我可能会关闭它们。以下是我通常遵循的经验法则:
如果您在每次客户端向服务器发送数据时都进行身份验证,那么您的服务器可能很容易分辨出“谁是谁”,并且您应该能够在每次都关闭它。
如果您的客户端仅在第一次向服务器发送数据时进行身份验证,并且您的服务器需要维护某个键到客户端连接的映射,那么最好让连接保持打开状态。
https://stackoverflow.com/questions/9951127
复制相似问题