服务器中是保持TCP/IP连接还是随用随连?

findcsdn 2014-12-13 03:50:24

编写服务器的时候,总有一个疑问。

客户端和服务器连接的时候,总是保持一个连接,还是有数据需求的时候在连接,传输完数据就断开,类似WEB的访问模式。

保持连接的状态下,假如有一步出现不同步,就可能引起程序阻塞或者数据错误。
每次发起连接,即使出现某个错误,程序还有机会重新连接回到正确的流程上来。


不知道各位大侠一般都怎么处理网络编程的连接的,希望指点一二。



...全文
167 点赞 收藏 6
写回复
6 条回复
笨笨仔 2014年12月15日
在终端数固定且数量有限的情况下,为了保证报警数据及时,还是保持连接好。TCP连接建立后底层会有“心跳”包,保持网络连接,如果出现异常会产生相应的事件,你只要在自己的程序中保证,当网络出现异常时能自动恢复连接就行了。
回复 点赞
阿先森 2014年12月15日
主从关系,建议使用TCP连接方式,可靠。 同级关系,建议使用UDP.
回复 点赞
xian_wwq 2014年12月15日
个人感觉这个需要看业务需求, 如果数据量较大,而且是长时间持续的,比如像数据采集应用, 保持连接比较好,不需要频繁的发起连接请求,效率较高。 如果业务都是短时间内完成,通讯持续时间短, 那还是随用随连比较好,对于Server的资源也是一种节约。 像报警类的,如果发送频率较高(秒级),要求响应及时,保持链路要好些吧。
回复 点赞
oyljerry 2014年12月15日
看你数据的要求以及业务模型,一般的都是发送的数据的时候就建立连接,发送数据。 长连接一般是websocket这种会使用
回复 点赞
worldy 2014年12月13日
如果必须出来数量不受限\随意发起的连接,那么使用随用随连接,用完就切断,如http 如果终端是比较有限且固定的,那么让其一直连接着,如dcom
回复 点赞
findcsdn 2014年12月13日
现在有一个项目,有许多报警前端用TCP/IP网络连接起来, 服务器读取前端的状态数据,如果异常就报警。 现在希望服务器能7*24小时运行,不知道用哪一种模式连接处理,程序才比较健壮,报警及时。
回复 点赞
发动态
发帖子
网络编程
创建于2007-09-28

7880

社区成员

6.4w+

社区内容

VC/MFC 网络编程
社区公告
暂无公告