首页 新闻 搜索 专区 学院

服务器端程序编程(C++)

0
悬赏园豆:10 [已解决问题] 解决于 2014-04-21 09:16

假如我现在有一个功能模块叫做add.dll,是在用户机器上的客户端上执行的(例如执行1+1=2).

现在我想要把这个模块放在服务器端的机器上执行,结果返回给用户.

那么之前为客户端写的add.dll的源码是否需要经过一些处理(健壮性以及速度)才能放到服务端的机器上? 有相关的书籍吗?

问题补充:

不用管Socket通信之类的编程,假设这些底部通信机制已经搭建好了.

只管add.dll这个模块的源码是否需要修改.也就是服务端程序和客户端程序的编程(不指网页程序,脚本啥的)区别,或者有哪些需要注意的.

小明哥哥的主页 小明哥哥 | 初学一级 | 园豆:186
提问于:2014-04-18 11:07
< >
分享
最佳答案
0

首先,作为服务端,健壮性、并发性等必然是要考虑的,但是必须结合实际场景。比如一个个位数用户的系统,那么并发性能必然不会要求很高,同时并发冲突的可能性也不会很多。又或者一个邮件服务的系统,他的速度性肯定不用象一个即时监控系统那么高。

第二,即然是原本为客户端写的接口,移植到服务端时必然要考虑服务端应用场景,比如原来客户端肯定就一个用户,到了服务端的话,基本上肯定有多用户,那么你的接口内是否涉及到资源冲突?

第三,具体冲突具体分析,有些是可以在接口上层解决的,有些则必需修改接口。例如你就是做个加法,那么肯定没冲突什么事,如果你结果要存数据库,要更新表,则需要考虑下会不会导致数据库锁死,如果会锁死,那么考虑下是不是外面做个线程安全的包装就可以解决问题,如果线程安全的包装需要10人日,但是就一个接口用到,而如果直接改接口则2人日就解决了,那么还是改接口吧,如果这个线程安全的包装在很多接口都用那么就做包装。

所以,具体问题具体分析...............

收获园豆:5
hailants | 小虾三级 |园豆:750 | 2014-04-18 16:42
其他回答(2)
0

你首先要考虑的不是健壮性和速度,而是跨进程通信技术,你需要找本 UNIX/Windows 网络编程的书籍读读。

收获园豆:3
Launcher | 园豆:45045 (高人七级) | 2014-04-18 11:11

多谢

支持(0) 反对(0) 小明哥哥 | 园豆:186 (初学一级) | 2014-04-18 16:48

@ronnie_mjy: 

不用管Socket通信之类的编程,假设这些底部通信机制已经搭建好了.

只管add.dll这个模块的源码是否需要修改.也就是服务端程序和客户端程序的编程(不指网页程序,脚本啥的)区别,或者有哪些需要注意的.

如果你这么来问的话,我可以告诉你没有区别,当然这里前提是你写过多线程程序,了解跨进程通迅编程,明白内存管理和异常处理。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2014-04-18 16:54
0

我的理解是,不管是在服务端和客户端add.dll的功能都只是一个运算的,放在那都是一样的,而放在服务端楼主只是为自己的程序添加了一套通信模块,然后建立了一套自己的通信规则,add.dll还是它自己~ 当然这里要排除add.dll如果是存在数据共享的情况下需要考虑加个访问控制

收获园豆:2
andy1987 | 园豆:490 (菜鸟二级) | 2014-04-18 16:20

谢了.

支持(0) 反对(0) 小明哥哥 | 园豆:186 (初学一级) | 2014-04-18 16:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册