freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于中間件的圖書管理系統(tǒng)unix課程設(shè)計(jì)(完整版)

2024-07-30 18:48上一頁面

下一頁面
  

【正文】 ,其調(diào)用格式如下:include sys/int listen(int s,int backlog)。該調(diào)用要接收3個(gè)參數(shù),根據(jù)這3個(gè)參數(shù)建立一個(gè)套接字,并將相應(yīng)的資源分配給它,同時(shí)返回一個(gè)整型套接字號(hào),只和一個(gè)特定的協(xié)議相聯(lián)系。(3)服務(wù)器服務(wù)器程序命名為server,要求帶有一個(gè)服務(wù)參數(shù),與中間件的mysvr2同服務(wù)器方程序要完成客戶端或中間件提出的業(yè)務(wù)請(qǐng)求,并做好留跡工作。這里有政策的因素,有制度的要求,也有技術(shù)的成份。軟件環(huán)境該圖書管理系統(tǒng)是在windows XP操作系統(tǒng)下使用Linux虛擬機(jī)環(huán)境,使用GNU C,在UNIX/Linux make開發(fā)工具的管理和控制下,利用UNIX/Linux Socket庫和MySQL數(shù)據(jù)庫在網(wǎng)絡(luò)的底層進(jìn)行開發(fā)設(shè)計(jì)的。通過中間件,應(yīng)用程序可以工作于多平臺(tái)或 OS 環(huán)境。雖然它帶來了相當(dāng)?shù)撵`活性,但也逐漸暴露出其客戶端和服務(wù)器端負(fù)擔(dān)過重的現(xiàn)象,并且拓展性也較差,無法跨越不同的業(yè)務(wù)部門和業(yè)務(wù)系統(tǒng)?!禪NIX系統(tǒng)與軟件開發(fā)》課程設(shè)計(jì)說明書設(shè)計(jì)題目: 圖書管理系統(tǒng) 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 指導(dǎo)教師: 班 級(jí): 學(xué) 號(hào): 姓 名: 同 組 人: 計(jì)算機(jī)科學(xué)與工程學(xué)院2014 年 6 月18 日前言在信息技術(shù)發(fā)展迅猛的二十一世紀(jì)的今天,我們需要掌握的不僅僅是科學(xué)文化知識(shí),還需要把所學(xué)到的知識(shí)合理的運(yùn)用到現(xiàn)實(shí)生活中來。這不僅表現(xiàn)在技術(shù)上有難度,更重要的是在制度和安全方面。它的工作機(jī)制是:當(dāng)客戶端上的應(yīng)用程序需要從網(wǎng)絡(luò)中某個(gè)節(jié)點(diǎn)處獲取一定的數(shù)據(jù)或服務(wù)時(shí),這些數(shù)據(jù)和服務(wù)可能處于一個(gè)運(yùn)行著和客戶端不同的硬、軟件、網(wǎng)絡(luò)或操作系統(tǒng)的平臺(tái)上。二、設(shè)計(jì)目的及要求基于UNIX Socket和MySQL數(shù)據(jù)庫,設(shè)計(jì)一個(gè)交易型中間件系統(tǒng)。(1)客戶端客戶端程序可命名為client,要求帶有兩個(gè)命令行參數(shù)一個(gè)是服務(wù)(自己定義,并保存在/etc/services中,比如mysvr1 5678),另一個(gè)是目的主機(jī)(自己定義,并保存在/etc/hosts內(nèi),也可使用DNS來解析),缺省時(shí)為本機(jī)。服務(wù)端環(huán)境必須是Linux系統(tǒng)。實(shí)際上指定了相關(guān)五元組中的“協(xié)議”這一元。listen()在執(zhí)行調(diào)用過程中可為沒有調(diào)用過bind()的套接字s完成所必需的連接,并建立長度為backlog的請(qǐng)求連接隊(duì)列。當(dāng)有連接請(qǐng)求到達(dá)時(shí),accept()調(diào)用將請(qǐng)求連接隊(duì)列上的第一個(gè)客戶方套接字地址及長度放入addr和addrlen,并創(chuàng)建一個(gè)與s有相同特性的新套接字號(hào)。【6】關(guān)閉套接字:close()close()關(guān)閉套接字s,并釋放分配給該套接字的資源。create database db?!魣?zhí)行查詢語句mysql_querymysql_query(amp。 //關(guān)閉連接}◆編譯和鏈接方法編譯鏈接時(shí)要使用L和l參數(shù)例如:cc o mysql L/usr/lib/mysql lmysqlclient五、調(diào)試與測(cè)試1) 安裝組件:rpm – ivh mysqldevel*.rpm2) 增加服務(wù):vi /etc/services S1 1245/tcp S2 1246/tcp3) 連接數(shù)據(jù)庫:mysql –u root4) 運(yùn)行服務(wù)器:cc o server L/usr/lib/mysql lmysqlclient ./server s15) 運(yùn)行中間件:cc –o middle ./middle s2 s1 localhost6) 運(yùn)行客戶端:cc –o client ./client s2 localhost1)MySQL數(shù)據(jù)庫的相關(guān)截圖,在文件中編寫創(chuàng)建數(shù)據(jù)庫library,在該數(shù)據(jù)庫下創(chuàng)建admi、books、borrow、test表,并插入相應(yīng)的數(shù)據(jù),具體內(nèi)容如下圖所示。其實(shí)設(shè)計(jì)中遇到的問題遠(yuǎn)比這多很多,因?yàn)檎莆罩R(shí)的程度不同,各種各樣的編程問題都會(huì)遇到,我們堅(jiān)持不懈,通過不斷的學(xué)習(xí)和查閱資料、向老師請(qǐng)教,最后通過努力完成了任務(wù)。insert into books values (2,book2,b,6)。include include include include sys/include sys/include netinet/include includemysql/includedefine rec_length 20getm(char buf[],char result[][10][50]) //change format{ char *ip=NULL,*op=NULL,*temp=NULL,*p=NULL,*tmp=NULL。 while((tmp=strtok_r(NULL,。 j=0。mysql)==NULL) { printf(db init error!\n)。 } printf(Connect db successfully!\n)。 if((result=mysql_store_result(amp。 if(p!=NULL) { bzero(buf,sizeof(buf))。 } } sprintf(p,%d%s,n,buf)。}checkstat(char id[]){ char cmd1[128],cmd2[128],cmd[128],buf[10]。 opdb(cmd,NULL,0)。 char *service。 } if((s=socket(AF_INET,SOCK_STREAM,0))==1){ fprintf(stderr,Error: socket create)。 exit(6)。 close(s)。 MYSQL_RES *result。 int n。 bzero(tmp,sizeof(tmp))。 break。 n=opdb(cmd,buf,1)。 printf(buf=%s\n,buf)。l39。 if((write(ns,buf,strlen(buf)))=0){ printf(Write socket error!\n)。amp。 case 39。139。storage=\0\,rec[0][1])。 bzero(cmd,sizeof(cmd))。 buf[1]=39。: getm(buf,rec)。 if(n=0) { printf(write error!\n)。amp。 if(write(ns,buf,strlen(buf))=0){ printf(Write wrong!\n)。amp。 break。 sprintf(cmd,update borrow set b_date=date_add(b_date,interval 30 day) where r_id=\%s\amp。 exit(1)。 } break。 case 39。 break。 opdb(cmd,buf,0)。 exit(0)。 struct servent *sp。 fprintf(stderr,\t%s lservice dservice server_name!\n,argv[0])。 } bzero(amp。 close(s)。 } if(pid!=0){ //parent proce, nothing to do, and to the next loop close(ns)。 } bzero(amp。 } if(connect(ss,(struct sockaddr *)amp。 exit(3)。 if((n=read(ss,buf,sizeof(buf)))==0){ //from server fprintf(stderr,Read Socket ss Error! s1\n)。 } } close(ss)。 char *service,*dest。 dest=argv[2]。 exit(0)。 exit(2)。 // request message got from the Client. printf(data to server:%s\n,buf)。 close(ss)。 bcopy(hp1h_addr,amp。continue。 } while(1){ fprintf(stderr,\n\t\t\t Now wait connect ...\n)。 =sps_port。 fprintf(stderr,and: lservice dservice are defined in file /etc/services\n)。 char buf[128]。 struct sockaddr_in sin1。039。 printf(send n=%d\n,n)。: getm(buf,rec)。 opdb(cmd,buf,0)。 case 39。b_id=\%s\,rec[0][0],rec[0][1])。M39。 opdb(cmd,buf,1)。 } break。 opdb(cmd,buf,0)。 } printf(send n=%d\n,n)。 sprintf(cmd,select , from borrow,books where =amp。 if((write(ns,buf,strlen(buf)))=0){ printf(Write socket error!\n)。 opdb(cmd,NULL,0)。239。\039。:
點(diǎn)擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1