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

正文內(nèi)容

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

  

【正文】 MYSQL_RES *result。 close(s)。 exit(6)。 } if((s=socket(AF_INET,SOCK_STREAM,0))==1){ fprintf(stderr,Error: socket create)。 char *service。 opdb(cmd,NULL,0)。 } checkstat(char id[]) { char cmd1[128],cmd2[128],cmd[128],buf[10]。 } } sprintf(p,%d%s,n,buf)。 if(p!=NULL) { bzero(buf,sizeof(buf))。 if((result=mysql_store_result(amp。 } printf(Connect db successfully!\n)。mysql)==NULL) { printf(db init error!\n)。 j=0。 while((tmp=strtok_r(NULL,。 23 服務(wù)器代碼 include include include include sys/ include sys/ include i/ include includemysql/ include define rec_length 20 getm(char buf[],char result[][10][50]) //change format { char *ip=NULL,*op=NULL,*temp=NULL,*p=NULL,*tmp=NULL。 insert into books values (2,book2,b,6)。 其實(shí)設(shè)計(jì)中遇到的問(wèn)題遠(yuǎn)比這多很多,因?yàn)檎莆罩R(shí)的程度不同,各種各樣的編程問(wèn)題都會(huì)遇到, 我 們 堅(jiān)持不懈,通過(guò)不斷的學(xué)習(xí)和查閱資料、向老師請(qǐng)教,最后通過(guò)努力 完成了任務(wù)。 //關(guān)閉連接 } ◆ 編譯和鏈接 方法 編譯鏈接時(shí)要使用 L 和 l參數(shù) 例如: cc o mysql L/usr/lib/mysql lmysqlclient 10 五、調(diào)試與測(cè)試 調(diào)試方法 1) 安裝組件: rpm – ivh mysqldevel*.rpm 2) 增加服務(wù): vi /etc/services S1 1245/tcp S2 1246/tcp 3) 連接數(shù)據(jù)庫(kù): mysql –u root 4) 運(yùn) 行服務(wù)器: cc o server L/usr/lib/mysql lmysqlclient ./server s1 5) 運(yùn)行中間件: cc –o middle ./middle s2 s1 localhost 6) 運(yùn)行客戶端: cc –o client ./client s2 localhost 測(cè)試結(jié)果分析及討論 1) MySQL 數(shù)據(jù)庫(kù)的相關(guān)截圖 編寫 腳本文件,在文件中編寫創(chuàng)建數(shù)據(jù)庫(kù) library,在該數(shù)據(jù)庫(kù)下創(chuàng)建 admi、 books、 borrow、 test 表,并插入相應(yīng)的數(shù)據(jù),具體內(nèi)容如下圖所示。 ◆ 執(zhí)行查詢語(yǔ)句 mysql_query mysql_query(amp。 create database db。 【 6】 關(guān)閉套接字: close() close()關(guān)閉套接字 s,并釋放分配給該套接字的資源 。 當(dāng)有連接請(qǐng)求到達(dá)時(shí) ,accept()調(diào)用將請(qǐng)求連接隊(duì)列上的第一個(gè)客戶方套接字地址及長(zhǎng)度放入 addr 和 addrlen,并創(chuàng)建一個(gè)與 s 有相同特性的新套接字號(hào)。 listen()在執(zhí)行調(diào)用過(guò)程中可為沒(méi)有調(diào)用過(guò) bind()的套接字 s 完成所必需的連接 ,并建立長(zhǎng)度為 backlog 的請(qǐng)求連接隊(duì)列。實(shí)際上指定了相關(guān)五元組中的 “ 協(xié)議 ” 這一元。服務(wù)端環(huán)境必須是 Linux 系統(tǒng)。 設(shè)計(jì)要求 ( 1)客戶端 客戶端程序可命名為 client,要求帶有兩個(gè)命令行參數(shù)一個(gè)是服務(wù)(自己定義,并保存在 /etc/services 中,比如 mysvr1 5678) ,另一個(gè)是目的主機(jī)(自己定義,并保存在 /etc/hosts 內(nèi),也可使用 DNS 來(lái)解析),缺省時(shí)為本機(jī)。 2 二、設(shè)計(jì)目的及要求 設(shè)計(jì)目的 基于 UNIX Socket 和 MySQL 數(shù)據(jù)庫(kù),設(shè)計(jì)一個(gè)交易型中間件系 統(tǒng)。 它的工作機(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)上。這不僅表現(xiàn)在技術(shù)上有難度,更重要的是在制度和安全方面。 《 UNIX 系統(tǒng)與軟件開發(fā) 》課程設(shè)計(jì) 說(shuō)明書 設(shè)計(jì)題目: 圖書管理系統(tǒng) 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 指導(dǎo)教師: 班 級(jí): 學(xué) 號(hào): 姓 名: 同 組 人: 計(jì)算機(jī)科學(xué)與工程學(xué)院 20xx 年 6 月 18 日 前言 在信息技術(shù)發(fā)展迅猛的二十一世紀(jì)的今天,我們需要掌握的不僅僅是科學(xué)文化知識(shí),還需要把所學(xué)到的知識(shí)合理的運(yùn)用到現(xiàn)實(shí)生活中來(lái)。 雖然它帶來(lái)了相當(dāng)?shù)撵`活性,但也逐漸暴露出其客戶端和服務(wù)器端負(fù)擔(dān)過(guò)重的現(xiàn)象,并且拓展性也較差,無(wú)法跨越不同的業(yè)務(wù)部門和業(yè)務(wù)系統(tǒng)。通過(guò)中間件,應(yīng)用程序可以工作于多平臺(tái)或 OS 環(huán)境。 軟件環(huán)境 該圖書管理系統(tǒng)是在 windows XP 操作系統(tǒng)下使用 Linux 虛擬機(jī)環(huán)境,使用GNU C,在 UNIX/Linux make 開發(fā)工具的管理和控制下,利用 UNIX/Linux Socket庫(kù)和 MySQL 數(shù)據(jù)庫(kù)在網(wǎng)絡(luò)的底層進(jìn)行開發(fā)設(shè)計(jì)的。這里有政策的因素,有制度的要求,也有技術(shù)的成份。 ( 3) 服務(wù)器 服務(wù)器程序命名為 server,要求帶有一個(gè)服務(wù)參數(shù),與中間件的 mysvr2 同服務(wù)器方程序要完成客戶端或中間件提出的業(yè)務(wù)請(qǐng)求,并做好留跡工作。 該調(diào)用要接收 3 個(gè)參數(shù),根據(jù)這 3 個(gè)參數(shù)建立一個(gè)套接字,并將相應(yīng)的資源分配給它,同時(shí)返回一個(gè)整型套接字號(hào),只和一個(gè)特定的 協(xié)議相聯(lián)系。 1isten()需在 accept()之前調(diào)用 ,其調(diào)用格式如下 : include sys/ int listen(int s,int backlog)。 ③ connect 與 accept 的說(shuō)明 調(diào)用 accept()后 ,服務(wù)器等待從編號(hào)為 s 的套接字上接受客戶連接請(qǐng)求 ,連接請(qǐng)求是由客戶方的 connect()調(diào)用發(fā)出的。 在處理二進(jìn)制數(shù)據(jù)處理時(shí),后者優(yōu)于前者。 use database。mysql,localhost,root,0,―mydb,0,NULL,0)。mysql)。為了解決這個(gè)錯(cuò)誤,我在客戶端的主菜單部分添加了 ifelse語(yǔ)句,對(duì)字符進(jìn)行判斷和錯(cuò)誤處理,成功的解決了該錯(cuò)誤。 insert into books values (1,book1,a,5)。 insert into admi values (11111,root,123)。op)。 } i++。 if(mysql_init(amp。 return 1。 } if(flag==1) { printf(bbbbbbbbbbbbb\n)。 j=0。 strcat(buf,row[i])。 return n。(opdb(cmd2,NULL,1)4)) { sprintf(cmd,update reader set enable=\1\ where id=\%s\,id)。 char buf[1024]。 exit(5)。 close(s)。 } if((pid=fork())==1){ // coned, and then create child proc fprintf(stderr,server: fork error!)。 MYSQL mysql。 char *b_id,*r_id。 bzero(rec,sizeof(rec))。 if(strcmp(buf,over)==0) { printf(Closed by Client\n)。 sprintf(cmd,select * from reader where id=\%s\,rec[0][0])。: //Query getm(buf,rec)。 case 39。 printf(reply:%s\n,buf)。 sprintf(cmd,select * from admi where id =\%s\amp。 break。 buf[0]=39。amp。 printf(rec=%s,%s\n,rec[0][0],rec[0][1])。039。r39。 n=write(ns,buf,strlen(buf))。 sprintf(cmd,delete from borrow where 30 r_id=\%s\amp。039。 sprintf(cmd,select ,date_add(,interval 30 day), from borrow,books where =amp。 } printf(send n=%d\n,n)。 opdb(cmd,buf,0)。 if(write(ns,buf,strlen(buf))=0){ printf(Write wrong!\n)。 break。 } break。 if(n=0){ printf(write error!\n)。 sprintf(cmd,delete from books where id=\%s\,rec[0][0])。 } } } 32 close(ns)。 // structure defined for request as a server struct sockaddr_in sin。 } else { fprintf(stderr,Parameter assigned Error!\nUsage
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1