专业课程设计之客户与服务器程序的同步与通信机制的设计(一)项目介绍
2017-05-31 12:34
323 查看
源码下载地址为:
http://download.csdn.net/detail/qq78442761/9856423
---------------------------------------------------------------------------------------------------------------------------------------------------------
设计题目为:
【题目】客户与服务器程序的同步与通信机制的设计
【内容】设计一个具体的应用场景(比如:电子交易)和两个交互进程,一个服务者进程和一个调用者进程,消息格式和内容自行设定,通过显示结果分析程序的正确性。
这是题目,现在来分析下:
问题1:客户与服务器程序的同步?
答:通过发数据包,实现客户机与服务器的通信,并且要消耗服务器上的产品,而服务器上的产品,一般用静态函数和成员存储,所以可以加一个互斥锁,实现不被cpu打断,也可以防止数据读取或加减异常。
问题2:通信机制的设计?
答:这里面我采用了TCP连接。更具TCP包的data的数据位中第第一位判断协议(如data第一位为A,则同步客户端;B为减少服务器资源等等)。
程序如下:
![](http://img.blog.csdn.net/20170531123204885?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXE3ODQ0Mjc2MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
下面是程序运行截图(打开服务器,客户机连接):
![](http://img.blog.csdn.net/20170531121927556?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXE3ODQ0Mjc2MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
当服务器产品增加的时候:
![](http://img.blog.csdn.net/20170531122040089?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXE3ODQ0Mjc2MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
客户机每秒消耗资源截图:
![](http://img.blog.csdn.net/20170531122144872?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXE3ODQ0Mjc2MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
服务器每秒加1个资源,客户机每秒消耗3个(3个客户机,每秒1个)时的截图:
![](http://img.blog.csdn.net/20170531122356171?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXE3ODQ0Mjc2MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
此时,我们可以看见都正常的,但现在客户机每0.01秒一个数据包,对服务器进行消耗资源:
![](http://img.blog.csdn.net/20170531122618455?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXE3ODQ0Mjc2MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
此行我们发现服务器上的产品数量和客户机的不同步,现在我们开启主动同步(类似于轮询,服务器主动给客户机通信说我现在没有资源了):
![](http://img.blog.csdn.net/20170531122836743?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXE3ODQ0Mjc2MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
此时就实现了同步:
那么这个题目:
【题目】客户与服务器程序的同步与通信机制的设计
【内容】设计一个具体的应用场景(比如:电子交易)和两个交互进程,一个服务者进程和一个调用者进程,消息格式和内容自行设定,通过显示结果分析程序的正确性。
也就完成了。
下面我将会对此程序进行拆分,下面一节讲解程序的TCP讲解。
IDE 为 Qt Creator5.7
下一节为专业课程设计项目之客户与服务器程序的同步与通信机制的设计(二)TCP通信
链接如下:http://blog.csdn.net/qq78442761/article/details/72819306
http://download.csdn.net/detail/qq78442761/9856423
---------------------------------------------------------------------------------------------------------------------------------------------------------
设计题目为:
【题目】客户与服务器程序的同步与通信机制的设计
【内容】设计一个具体的应用场景(比如:电子交易)和两个交互进程,一个服务者进程和一个调用者进程,消息格式和内容自行设定,通过显示结果分析程序的正确性。
这是题目,现在来分析下:
问题1:客户与服务器程序的同步?
答:通过发数据包,实现客户机与服务器的通信,并且要消耗服务器上的产品,而服务器上的产品,一般用静态函数和成员存储,所以可以加一个互斥锁,实现不被cpu打断,也可以防止数据读取或加减异常。
问题2:通信机制的设计?
答:这里面我采用了TCP连接。更具TCP包的data的数据位中第第一位判断协议(如data第一位为A,则同步客户端;B为减少服务器资源等等)。
程序如下:
下面是程序运行截图(打开服务器,客户机连接):
当服务器产品增加的时候:
客户机每秒消耗资源截图:
服务器每秒加1个资源,客户机每秒消耗3个(3个客户机,每秒1个)时的截图:
此时,我们可以看见都正常的,但现在客户机每0.01秒一个数据包,对服务器进行消耗资源:
此行我们发现服务器上的产品数量和客户机的不同步,现在我们开启主动同步(类似于轮询,服务器主动给客户机通信说我现在没有资源了):
此时就实现了同步:
那么这个题目:
【题目】客户与服务器程序的同步与通信机制的设计
【内容】设计一个具体的应用场景(比如:电子交易)和两个交互进程,一个服务者进程和一个调用者进程,消息格式和内容自行设定,通过显示结果分析程序的正确性。
也就完成了。
下面我将会对此程序进行拆分,下面一节讲解程序的TCP讲解。
IDE 为 Qt Creator5.7
下一节为专业课程设计项目之客户与服务器程序的同步与通信机制的设计(二)TCP通信
链接如下:http://blog.csdn.net/qq78442761/article/details/72819306
相关文章推荐
- 专业课程设计之客户与服务器程序的同步与通信机制的设计(二)TCP通信
- 专业课程设计之客户与服务器程序的同步与通信机制的设计(四)信号量
- 专业课程设计之客户与服务器程序的同步与通信机制的设计(三)数据共享和线程
- 基于Server-Sent Event的简单聊天室 Web 2.0时代,即时通信已经成为必不可少的网站功能,那实现Web即时通信的机制有哪些呢?在这门项目课中我们将一一介绍。最后我们将会实现一个基于Server-Sent Event和Flask简单的在线聊天室。
- 基于Server-Sent Event的简单聊天室 Web 2.0时代,即时通信已经成为必不可少的网站功能,那实现Web即时通信的机制有哪些呢?在这门项目课中我们将一一介绍。最后我们将会实现一个基于Server-Sent Event和Flask简单的在线聊天室。
- Matlab卷积编码器维特比译码-通信专业课程设计
- 大四课程设计之基于RFID技术的考勤管理系统(一)项目介绍
- C++程序设计课程同步项目——选择结构程序设计任务(二)
- 可靠的同步机制、通信机制
- VxWorks中信号量实现任务间通信与同步机制分析
- C++程序设计课程同步项目——选择结构程序设计任务(一)
- NSNotificationCenter消息通信机制介绍
- Android Binder机制の设计与实现1-3(引言/面向对象的 Binder IPC/Binder 通信模型)
- 河北理工大学03信息专业课程设计时间安排表及报告模版下载
- C++程序设计课程同步项目开发——前言
- C++程序设计课程同步项目——简单程序设计任务
- 为什么要检测数据库连接是否可用,项目经理说如果实现了这个功能,客户会认可你的软件很专业,很好用
- 文秘专业核心课程介绍
- 机制设计,拍卖(Mechanism Design, Auction)- 资源 - 专家,会议,课程等
- Sersync服务器同步程序项目简介与设计框架