免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6033 | 回复: 8
打印 上一主题 下一主题

tcp应用服务程序框架设计开发经验请教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-02-12 18:18 |只看该作者 |倒序浏览
目前正在开发一个应用服务器程序,大概有十几个左右(不超过20)的客户终端机
与该服务器连接,使用tcp协议来进行网络通信。该服务器需要长时间(几个月或1年)稳定可靠的
运行,为各客户端提供服务。服务器采用linux系统(linux2.6),客户端暂采用windows系统,

由于我对于开发稳定的产品级的网络服务程序缺乏实战的经验,所以有以下几个问题向各位高手请教,

1 服务端通信服务使用单进程多线程的架构,非阻塞通信设置。网络通信这块分三个线程来实现,
A线程为专门的连接处理线程,等待在listen的socket上的客户端连接,并把
进来的连接保存。
B线程为专门的接收处理线程,采用select方式的IO多路复用方式在Accept好的连接socket
进行接收数据,并把它放置到全局的接收数据队列。
C线程为发送处理线程,在已连接的socket上发送数据。
请问这样的架构是否合理,是否有改进的地方?

2 虽然TCP协议是可靠的通信协议,在发送时如何确定发送数据成功与否?

3 由于服务端和客户端是采用tcp长时间保持连接的方式,当由于各种原因连接意外中断时,在服务端如何确定
连接的意外中断?

4 一个稳定的产品级的网络服务程序在调用几个常用的socket的API函数时有什么需要注意的细节?

我个人也下载了nagix,libevent等开源的网络程序库看了下,但是感觉较难在短时间内学习到产品级的网络开发的经验,所以在论坛上贴出该问题,欢迎各位高手发表高见或推荐更轻量级的tcp开源程序,谢谢!

论坛徽章:
1
技术图书徽章
日期:2013-10-29 15:46:41
2 [报告]
发表于 2014-02-19 12:00 |只看该作者
并发数这么小 应该问题不大
问题2 发送确认包呗
问题3 添加心跳包

论坛徽章:
0
3 [报告]
发表于 2014-03-06 16:36 |只看该作者
参考这篇文章讨论的内容:
http://bbs.chinaunix.net/thread-1840615-1-3.html
谈谈你**的通讯程序的模型
建议用中间件。

论坛徽章:
0
4 [报告]
发表于 2014-03-09 23:43 |只看该作者
本帖最后由 Hugo801122 于 2014-03-10 11:21 编辑

2 虽然TCP协议是可靠的通信协议,在发送时如何确定发送数据成功与否?
最好你自己设计个更高层协议,让接收方一定时间内返回个ack表示收到。

论坛徽章:
2
申猴
日期:2014-04-17 14:37:17CU十四周年纪念徽章
日期:2018-06-23 16:03:03
5 [报告]
发表于 2014-03-20 17:17 |只看该作者
3 由于服务端和客户端是采用tcp长时间保持连接的方式,当由于各种原因连接意外中断时,在服务端如何确定

客户端定时发送心跳,服务端check

2 虽然TCP协议是可靠的通信协议,在发送时如何确定发送数据成功与否?

自己增加协议,使用消息id。

1 服务端通信服务使用单进程多线程的架构,非阻塞通信设置。网络通信这块分三个线程来实现,
可以分成好几层
1)接入层 处理socket连接
2)逻辑层 处理协议相关
3)数据交互层 处理和数据库或者其他服务 数据交互

4 一个稳定的产品级的网络服务程序在调用几个常用的socket的API函数时有什么需要注意的细节?
实际项目中没有直接用socket函数,用的开源库 asio,这个没办法说。
关于协议楼主可以看看xmpp

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2014-10-11 19:56 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
7 [报告]
发表于 2015-01-07 16:25 |只看该作者
留着慢慢学习。

论坛徽章:
0
8 [报告]
发表于 2015-01-17 18:57 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP