专业课程设计之客户与服务器程序的同步与通信机制的设计(一)项目介绍
源碼下載地址為:
http://download.csdn.net/detail/qq78442761/9856423
---------------------------------------------------------------------------------------------------------------------------------------------------------
設(shè)計(jì)題目為:
【題目】客戶與服務(wù)器程序的同步與通信機(jī)制的設(shè)計(jì)
【內(nèi)容】設(shè)計(jì)一個(gè)具體的應(yīng)用場(chǎng)景(比如:電子交易)和兩個(gè)交互進(jìn)程,一個(gè)服務(wù)者進(jìn)程和一個(gè)調(diào)用者進(jìn)程,消息格式和內(nèi)容自行設(shè)定,通過(guò)顯示結(jié)果分析程序的正確性。
這是題目,現(xiàn)在來(lái)分析下:
問(wèn)題1:客戶與服務(wù)器程序的同步?
答:通過(guò)發(fā)數(shù)據(jù)包,實(shí)現(xiàn)客戶機(jī)與服務(wù)器的通信,并且要消耗服務(wù)器上的產(chǎn)品,而服務(wù)器上的產(chǎn)品,一般用靜態(tài)函數(shù)和成員存儲(chǔ),所以可以加一個(gè)互斥鎖,實(shí)現(xiàn)不被cpu打斷,也可以防止數(shù)據(jù)讀取或加減異常。
問(wèn)題2:通信機(jī)制的設(shè)計(jì)?
答:這里面我采用了TCP連接。更具TCP包的data的數(shù)據(jù)位中第第一位判斷協(xié)議(如data第一位為A,則同步客戶端;B為減少服務(wù)器資源等等)。
程序如下:
下面是程序運(yùn)行截圖(打開(kāi)服務(wù)器,客戶機(jī)連接):
當(dāng)服務(wù)器產(chǎn)品增加的時(shí)候:
客戶機(jī)每秒消耗資源截圖:
服務(wù)器每秒加1個(gè)資源,客戶機(jī)每秒消耗3個(gè)(3個(gè)客戶機(jī),每秒1個(gè))時(shí)的截圖:
此時(shí),我們可以看見(jiàn)都正常的,但現(xiàn)在客戶機(jī)每0.01秒一個(gè)數(shù)據(jù)包,對(duì)服務(wù)器進(jìn)行消耗資源:
此行我們發(fā)現(xiàn)服務(wù)器上的產(chǎn)品數(shù)量和客戶機(jī)的不同步,現(xiàn)在我們開(kāi)啟主動(dòng)同步(類似于輪詢,服務(wù)器主動(dòng)給客戶機(jī)通信說(shuō)我現(xiàn)在沒(méi)有資源了):
此時(shí)就實(shí)現(xiàn)了同步:
那么這個(gè)題目:
【題目】客戶與服務(wù)器程序的同步與通信機(jī)制的設(shè)計(jì)
【內(nèi)容】設(shè)計(jì)一個(gè)具體的應(yīng)用場(chǎng)景(比如:電子交易)和兩個(gè)交互進(jìn)程,一個(gè)服務(wù)者進(jìn)程和一個(gè)調(diào)用者進(jìn)程,消息格式和內(nèi)容自行設(shè)定,通過(guò)顯示結(jié)果分析程序的正確性。
也就完成了。
下面我將會(huì)對(duì)此程序進(jìn)行拆分,下面一節(jié)講解程序的TCP講解。
IDE 為 Qt Creator5.7
下一節(jié)為專業(yè)課程設(shè)計(jì)項(xiàng)目之客戶與服務(wù)器程序的同步與通信機(jī)制的設(shè)計(jì)(二)TCP通信
鏈接如下:http://blog.csdn.net/qq78442761/article/details/72819306
總結(jié)
以上是生活随笔為你收集整理的专业课程设计之客户与服务器程序的同步与通信机制的设计(一)项目介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: HTML期末网页作业-仿QQ官网QQ注册
- 下一篇: java编写一个程序_计算已知长和宽的长