版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)6消息隊(duì)列通信實(shí)驗(yàn)?zāi)康?、了解什么是消息、消息隊(duì)列2、掌握消息傳送的機(jī)理實(shí)驗(yàn)內(nèi)容1、消息的創(chuàng)建、發(fā)送和接受。使用系統(tǒng)調(diào)用msgget(),msgsnd(),msgrev(),及msget1()編制一長(zhǎng)度為1k的消息發(fā)送和接受的程序。Msgqid.c#incIude<stdio.h>#inckide<sys/types.h>#include<sys/msg.h>#inckide<sys/ipc.h>#defineMSGKEY75/*定義關(guān)鍵詞MEGKEY*/structmsgform/*消息結(jié)構(gòu)*/{1ongm(ype;charmtext[1030];/*文本長(zhǎng)度*/}msg;intmsgqid,i;voidCLIENTO{inti;msgqid=msgget(MSGKEY,0777);for(i=10;i>=1;i-)msg.mtype=i;printf("(c1ient)sent'n");msgsnd(msgqid,&msg,1024,0);/*發(fā)送消息msg入msgid消息隊(duì)列*/)exit(0);)voidSERVER(){msgqid=msgget(MSGKEY,0777|IPC_CREAT);/*由關(guān)鍵字獲得消息隊(duì)列*/do|msgrcv(msgqid,&msg,1030,0,0);/*從msgqid隊(duì)列接受消息msg*/printf("(server)received\n");}while(msg.mtype1=1);/*消息類(lèi)型為1時(shí),釋放隊(duì)列*/msgctl(msgqid,IPC_RMID,0);exit(0);)main(){while((i=fork())==-l);if(!i)SERVER();while((i=fork())=-l);if(!i)CLIENT();wait(0);實(shí)驗(yàn)結(jié)果:FileEditViewTerminalTabsHelpmsgqid.c:32:warning:incompatibleimplicitdeclarationofbuilt-infunction'exptif[root(aiocalhost?]#./msgqid(client)sent(client)sent(client)sent(client)sent(client)sent(client)sent(cllent)sent(cllent)sent(client)sent(client)sent(server)received(server)received(server)received(server)received(server)received(server)received(server)received(server)received(server)received(server)received[root(aiocalhost-]#口2、選做實(shí)驗(yàn):模擬從c/s通信客戶(hù)端client功能:1)顯示服務(wù)功能菜單teryourchoice:Savenoney2.Takemoney2)接受用戶(hù)鍵入的功能號(hào)進(jìn)行選擇;3)將用戶(hù)鍵入的功能號(hào)作為一條消息發(fā)送到消息隊(duì)列,然后結(jié)束服務(wù)端功能:1)從消息隊(duì)列接受c1ient發(fā)送的一條消息;2)根據(jù)消息作如下解決:若消息為“1”,創(chuàng)建子進(jìn)程1,子進(jìn)程1加載服務(wù)模塊save,該模塊顯示以下信息:Yourmoneywassavcd!若消息為“2”,創(chuàng)建子進(jìn)程2,子進(jìn)程2加載服務(wù)模塊take,該模塊顯示以下信息:P1easetakeyourmoney!3)等待子進(jìn)程終止后,server消息對(duì)列結(jié)束。注意:l)save和take要事先編譯連接好,放在同一目錄下;2)先運(yùn)營(yíng)客戶(hù)端進(jìn)程,再運(yùn)營(yíng)服務(wù)端進(jìn)程。1、client.cinclude<sys/types.h>inelude<sys/msg.h>inc1ude<sys/ipc,h>include<stdio.h>#include<std1ib.h>#defineMSGKEY75structmsgform{longmtype;charmtext[1000];}msg;intmsgqid;voidclient()inti;msgqid=msgget(MSGKEY,0777);/*打開(kāi)75#消息隊(duì)列*/for(i=20;i>=l;i-)msg.mtype=i;printf("(client)sent%d\n',,i);sleep(3);msgsnd(msgqid.&msg,1024,0);/*發(fā)送消息*/)exit(0);)main()(client();)server.cinclude<sys/types.h>incIude<sys/msg.h>inc1ude<sys/ipc.h>inc1udc<stdio.h>include<std1ib.h>defineMSGKEY75structmsgfbrm{1ongmtype;charmtex([10001;}msg;intmsgqid;voidservcr()msgqid=msgge((MSGKEY,0777|IPC.CREAT);/*創(chuàng)建75#消息隊(duì)列號(hào)msgrcv(msgqid,&msg,1030Q0);/*接受消息*/printf("(server)received%1d\n”,msg.mtype);s1eep(3);}whilc(msg.mtypc!=l);msgctl(msgqidJPC_RMID,0);/火刪除消息隊(duì)列,歸還資源*/exit(0);Imain(){server();
實(shí)驗(yàn)結(jié)果:qroot@localhost:~1FileEditViewTerminalTabsHelp[root@localhostgcc-oclientclient.c[root@local.host?J#./client(client)sent20(client)sent19(client)sent18(client)sent17(client)sent16(client)sent15(client)sent14(client)sent13(client)sent12(client)sent11(client)sent10(client)sent9(client)sent8(client)sent7(client)sent6(client)sent5(client)sent4(client)sent3(client)sent2(client)sent1[root@localhost?]#口root@localhost:~FileEditViewTerminalTabsHelp[root(aiocalhostgcc-oserverserver.c[root@localhost-]#./server(server)received20(server)received19(server)received18(server)received17(server)received16(server)received15(server)received14(server)received13(server)received12(server)received11(server)rec
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 庫(kù)存轉(zhuǎn)讓協(xié)議合同
- 家人代簽協(xié)議書(shū)
- 戰(zhàn)爭(zhēng)協(xié)議書(shū)模板
- 營(yíng)員安全協(xié)議書(shū)
- 薪酬補(bǔ)貼協(xié)議書(shū)
- 蝎子合伙協(xié)議書(shū)
- 蝦塘投資協(xié)議書(shū)
- 自來(lái)水借用協(xié)議書(shū)
- 自行協(xié)議協(xié)議書(shū)
- 展會(huì)合作協(xié)議書(shū)
- 2025年吉林省直機(jī)關(guān)公開(kāi)遴選公務(wù)員筆試題參考解析
- 科研項(xiàng)目財(cái)務(wù)專(zhuān)項(xiàng)審計(jì)方案模板
- 退伍留疆考試題庫(kù)及答案
- 數(shù)據(jù)倫理保護(hù)機(jī)制-洞察及研究
- 2025年鋼貿(mào)行業(yè)市場(chǎng)分析現(xiàn)狀
- 2025數(shù)字孿生與智能算法白皮書(shū)
- 鄉(xiāng)村醫(yī)生藥品管理培訓(xùn)
- 2025春季學(xué)期國(guó)開(kāi)電大專(zhuān)科《管理學(xué)基礎(chǔ)》一平臺(tái)在線形考(形考任務(wù)一至四)試題及答案
- 財(cái)務(wù)保密意識(shí)培訓(xùn)
- 辦公室裝修改造工程合同書(shū)
- 教師節(jié)學(xué)術(shù)交流活動(dòng)策劃方案
評(píng)論
0/150
提交評(píng)論