首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Socket始终打开还是只在需要时打开?

Socket始终打开还是只在需要时打开?
EN

Stack Overflow用户
提问于 2012-03-31 06:22:13
回答 3查看 2.1K关注 0票数 1

我正在编写一个应用程序,客户端应用程序需要向服务器进行身份验证才能登录,每半小时发送一个数据包并接收一些信息,然后再休眠半个小时。

正确的方式是每次启动套接字,并在发送和接收数据包后关闭。或者我应该让它们始终保持开放和连接?

将会有100+客户端同时运行,并连接到服务器。

顺便说一句,发送的数据非常重要,它最多能在5-10秒内发送和检索

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-31 06:26:07

当然,最好每次都打开一个新的连接,然后立即关闭它。使用这种方法,打开一个新的连接不需要很长时间,并且5-10秒的要求很容易满足。

票数 2
EN

Stack Overflow用户

发布于 2012-03-31 06:25:57

持续半小时的空闲连接很可能会被某些路由器/防火墙杀死。建立TCP/IP连接会带来一些开销,但与每30分钟5-10秒相比,这可以忽略不计。

票数 2
EN

Stack Overflow用户

发布于 2012-03-31 06:31:21

通常,我会让TCP套接字保持打开状态,但这取决于服务器需要如何处理这些连接。在这种情况下,我可能会关闭它们。以下是我通常遵循的经验法则:

如果您在每次客户端向服务器发送数据时都进行身份验证,那么您的服务器可能很容易分辨出“谁是谁”,并且您应该能够在每次都关闭它。

如果您的客户端仅在第一次向服务器发送数据时进行身份验证,并且您的服务器需要维护某个键到客户端连接的映射,那么最好让连接保持打开状态。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9951127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档