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

正文內(nèi)容

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

2023-07-12 18:48:51 本頁(yè)面
 

【正文】 如下:include sys/ int bind(int sockfd,const struct sockaddr *my_addr, int addrlen)。該調(diào)用要接收3個(gè)參數(shù),根據(jù)這3個(gè)參數(shù)建立一個(gè)套接字,并將相應(yīng)的資源分配給它,同時(shí)返回一個(gè)整型套接字號(hào),只和一個(gè)特定的協(xié)議相聯(lián)系。三、總體設(shè)計(jì)設(shè)計(jì)過(guò)程中借助了中間件來(lái)實(shí)現(xiàn)主機(jī)和客戶機(jī)之間的鏈接,它的工作機(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)上。(3)服務(wù)器服務(wù)器程序命名為server,要求帶有一個(gè)服務(wù)參數(shù),與中間件的mysvr2同服務(wù)器方程序要完成客戶端或中間件提出的業(yè)務(wù)請(qǐng)求,并做好留跡工作。(2)中間件中間件程序命名為middle,要帶有三個(gè)參數(shù),一個(gè)是用于服務(wù)器的服務(wù)(名字,與客戶端同),第二個(gè)作為請(qǐng)求的服務(wù)(自己定義,并保存在/etc/services中,要區(qū)別于客戶端,比如mysvr2 5679),第三個(gè)為目的主機(jī)(定義在/etc/hosts內(nèi)),缺省時(shí)為本機(jī)。這里有政策的因素,有制度的要求,也有技術(shù)的成份。例如電子商務(wù)、銀行代理業(yè)務(wù)軟件等都是這種類型的軟件。軟件環(huán)境該圖書管理系統(tǒng)是在windows XP操作系統(tǒng)下使用Linux虛擬機(jī)環(huán)境,使用GNU C,在UNIX/Linux make開(kāi)發(fā)工具的管理和控制下,利用UNIX/Linux Socket庫(kù)和MySQL數(shù)據(jù)庫(kù)在網(wǎng)絡(luò)的底層進(jìn)行開(kāi)發(fā)設(shè)計(jì)的。交易型中間件是指用在不同行業(yè)、不同部門間的通訊轉(zhuǎn)發(fā)和協(xié)議轉(zhuǎn)換的軟件,在不同的行業(yè)、不同的系統(tǒng)間提供通訊轉(zhuǎn)發(fā)和協(xié)議轉(zhuǎn)換的橋梁作用。通過(guò)中間件,應(yīng)用程序可以工作于多平臺(tái)或 OS 環(huán)境。中間件位于客戶機(jī)/ 服務(wù)器的操作系統(tǒng)之上,管理計(jì)算資源和網(wǎng)絡(luò)通訊。雖然它帶來(lái)了相當(dāng)?shù)撵`活性,但也逐漸暴露出其客戶端和服務(wù)器端負(fù)擔(dān)過(guò)重的現(xiàn)象,并且拓展性也較差,無(wú)法跨越不同的業(yè)務(wù)部門和業(yè)務(wù)系統(tǒng)。這種二層結(jié)構(gòu)是計(jì)算機(jī)及軟件技術(shù)發(fā)展的一大進(jìn)步。《UNIX系統(tǒng)與軟件開(kāi)發(fā)》課程設(shè)計(jì)說(shuō)明書設(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í)生活中來(lái)。一般而言,服務(wù)器是一個(gè)進(jìn)程,它等待客戶機(jī)與其聯(lián)系,提出某種類型的服務(wù)要求。這不僅表現(xiàn)在技術(shù)上有難度,更重要的是在制度和安全方面。是連接兩個(gè)獨(dú)立應(yīng)用程序或獨(dú)立系統(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)上。本次設(shè)計(jì)不是基于WEB的,不需要很多與WEB開(kāi)發(fā)相關(guān)的知識(shí),主要是利用UNIX系統(tǒng)提供的Socket庫(kù)在網(wǎng)絡(luò)底層,開(kāi)發(fā)交易型中間件。二、設(shè)計(jì)目的及要求基于UNIX Socket和MySQL數(shù)據(jù)庫(kù),設(shè)計(jì)一個(gè)交易型中間件系統(tǒng)。本設(shè)計(jì)不是基于WEB的,不需要很多與WEB開(kāi)發(fā)相關(guān)的知識(shí),主要是利用UNIX系統(tǒng)提供的Socket庫(kù)在網(wǎng)絡(luò)底層,開(kāi)發(fā)交易型中間件。(1)客戶端客戶端程序可命名為client,要求帶有兩個(gè)命令行參數(shù)一個(gè)是服務(wù)(自己定義,并保存在/etc/services中,比如mysvr1 5678),另一個(gè)是目的主機(jī)(自己定義,并保存在/etc/hosts內(nèi),也可使用DNS來(lái)解析),缺省時(shí)為本機(jī)。中間件要完成與客戶要求相符的功能:是本地的本地處理,否則發(fā)往服務(wù)器方。服務(wù)端環(huán)境必須是Linux系統(tǒng)。C/S應(yīng)用程序中負(fù)責(zé)尋找數(shù)據(jù)的部分只需訪問(wèn)一個(gè)中間件系統(tǒng),由中間件完成到網(wǎng)絡(luò)中找到數(shù)據(jù)源或服務(wù),進(jìn)而實(shí)現(xiàn)傳輸客戶請(qǐng)求、重組答復(fù)信息,最后將結(jié)果送回應(yīng)用程序的任務(wù)。實(shí)際上指定了相關(guān)五元組中的“協(xié)議”這一元。說(shuō)明:sockfd:為socket成功時(shí)的返回值—套接字描述符。listen()在執(zhí)行調(diào)用過(guò)程中可為沒(méi)有調(diào)用過(guò)bind()的套接字s完成所必需的連接,并建立長(zhǎng)度為backlog的請(qǐng)求連接隊(duì)列。①connect功能:客戶方調(diào)用發(fā)出的請(qǐng)求用法:int connect(int sockfd,const structct sockaddr * server_addr, socklen_t addrlen)。當(dāng)有連接請(qǐng)求到達(dá)時(shí),accept()調(diào)用將請(qǐng)求連接隊(duì)列上的第一個(gè)客戶方套接字地址及長(zhǎng)度放入addr和addrlen,并創(chuàng)建一個(gè)與s有相同特性的新套接字號(hào)。send()調(diào)用用于在參數(shù)s指定的已連接的數(shù)據(jù)報(bào)或流套接字上發(fā)送輸出數(shù)據(jù),格式如下:int send(int s,void *buf,int len,int flags)。【6】關(guān)閉套接字:close()close()關(guān)閉套接字s,并釋放分配給該套接字的資源。方法:◆ chkconfig –level 2345 mysqld on◆ ntsysv◆ service mysqld start / stop /restart◆ 圖形方式 MySQL客戶端命令行工具M(jìn)ySqyl客戶端命令行工具為mysql。create database db?!纛^文件:目錄:/usr/include/mysql使用:include mysql/說(shuō)明:必要時(shí)可使用I參數(shù)◆庫(kù)文件:靜態(tài)庫(kù):/usr/lib/mysql/動(dòng)態(tài)庫(kù):/usr/lib/mysql/使用參數(shù):L/usr/lib/mysql lmysqlclient◆初始化數(shù)據(jù)結(jié)構(gòu)mysql_init(amp?!魣?zhí)行查詢語(yǔ)句mysql_querymysql_query(amp。◆處理結(jié)果集while((row=mysql_fetch_row(result))){ fprintf(stdout,%s|\t%s\n,row[0],row[2])。 //關(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ù)庫(kù):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ù)庫(kù)的相關(guān)截圖,在文件中編寫創(chuàng)建數(shù)據(jù)庫(kù)library,在該數(shù)據(jù)庫(kù)下創(chuàng)建admi、books、borrow、test表,并插入相應(yīng)的數(shù)據(jù),具體內(nèi)容如下圖所示。在編寫好程序后,發(fā)現(xiàn)在管理員增加圖書模塊,只能連續(xù)的增加圖書,不能退出該選項(xiàng)。其實(shí)設(shè)計(jì)中遇到的問(wèn)題遠(yuǎn)比這多很多,因?yàn)檎莆罩R(shí)的程度不同,各種各樣的編程問(wèn)題都會(huì)遇到,我們堅(jiān)持不懈,通過(guò)不斷的學(xué)習(xí)和查閱資料、向老師請(qǐng)教,最后通過(guò)努力完成了任務(wù)。create table reader(id char(10) not null primary key,name char(50) not null,password char(15),enable char(2) default 1)。insert into books values (2,book2,b,6)。insert into books values (6,book6,f,4)。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。 p=temp。 while((tmp=strtok_r(NULL,。ip))!=NULL) { strcpy(result[i][j],tmp)。 j=0。 MYSQL_ROW row。mysql)==NULL) { printf(db init error!\n)。mysql,localhost,root,0,library,0,NULL,0)) { printf(Connect error!\n)。 } printf(Connect db successfully!\n)。 mysql_close(amp。 if((result=mysql_store_result(amp。 return 1。 if(p!=NULL) { bzero(buf,sizeof(buf))。 for(i=1。 } } sprintf(p,%d%s,n,buf)。mysql)。}checkstat(char id[]){ char cmd1[128],cmd2[128],cmd[128],buf[10]。 sprintf(cmd2,select * from borrow where r_id=\%s\,id)。 opdb(cmd,NULL,0)。}main(int argc, char **argv ){ struct sockaddr_in sin。 char *service。 fprintf(stderr,Note: server_name is defined in file /etc/services\n)。 } if((s=socket(AF_INET,SOCK_STREAM,0))==1){ fprintf(stderr,Error: socket create)。 =sps_port。 exit(6)。 } while(1){ fprintf(stderr,\n\t\t\t Now wait connect ...\n)。 close(s)。 continue。 MYSQL_RES *result。 char name[50],writer[50]。 int n。 bzero(id,sizeof(id))。 bzero(tmp,sizeof(tmp))。 } buf[n]=39。 break。c39。 n=opdb(cmd,buf,1)。 } break。 printf(buf=%s\n,buf)。 if((write(ns,buf,sizeof(buf)))=0){ printf(Write socket wrong!\n)。l39。amp。 if((write(ns,buf,strlen(buf)))=0){ printf(Write socket error!\n)。 case 39。amp。 if((write(ns,buf,strlen(buf)))=0) {
點(diǎn)擊復(fù)制文檔內(nèi)容
語(yǔ)文相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1