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

正文內(nèi)容

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

2024-08-01 18:48上一頁面

下一頁面
  

【正文】 getm(buf,rec)。 opdb(cmd,buf,1)。 } printf(Login\n)。 checkstat(rec[0][0])。 n=opdb(cmd,buf,1)。 if((write(ns,buf,sizeof(buf)))=0) { printf(Write socket wrong!\n)。39。 if((n=read(ns,buf,sizeof(buf)))=0) { printf(read wrong!\n)。 while(1) { n=0。 char cmd[128],buf[128]。 } if(pid!=0){ //parent proce, nothing to do, and to the next loop close(ns)。 close(s)。 } bzero(amp。 else { fprintf(stderr,NO service assigned!\nUsage:\n)。 opdb(cmd,NULL,0)。amp。 mysql_free_result(result)。)。 mysql_close(amp。 if(mysql_query(amp。 } printf(Init db successfully!\n)。}int opdb(char *cmd,char *p,int flag) //operate database{ MYSQL mysql。op))!=NULL) { p=tmp。 temp=(char *)malloc(strlen(buf))。insert into books values (4,book4,d,10)。use library。平時我們都習(xí)慣了使用Windows的編輯器,開始的時候由于UNIX的文檔編輯和Windows有著很大的區(qū)別,UNIX是全字符編輯器,所以在初期使用UNIX進行的編輯的時候有點不知道該從那下手,后來經(jīng)過學(xué)習(xí)知道在其編輯過程中我們可以使用終端通過命令來實現(xiàn)。//保存結(jié)果result=mysql_store_result(amp。drop database db/ table tbl。close()的調(diào)用格式如下:int close(int s); MySQL數(shù)據(jù)庫在Unix的使用 軟件包需要1)MySql服務(wù)器2)MySql客戶端3)MySql開發(fā)接口庫 MySQL服務(wù)配置◆ mysqyld服務(wù)要運行起來。 【5】數(shù)據(jù)傳輸:send()/write與recv()/read() 當(dāng)一個連接建立以后,就可以傳輸數(shù)據(jù)了。默認(rèn)值為5. 【4】connect(),accept()這兩個系統(tǒng)調(diào)用用于完成一個完整相關(guān)的建立,其中connect()用于客戶建立連接?!?】綁定本地地址—bind()當(dāng)一個套接字用socket()創(chuàng)建后,存在一個名字空間(地址族),但它沒有被命名,bind()將套接字地址(包括本地主機地址和本地端口地址)與所創(chuàng)建的套接字號綁定起來,即將名字賦予套接字,以指定本地半相關(guān)??蛻舳嘶蛑虚g件方可以使用文本文件或數(shù)據(jù)庫,但在服務(wù)器方必須使MySql數(shù)據(jù)庫??蛻舳说沫h(huán)境可以是Windows系統(tǒng),也可以的Linux系統(tǒng)。交易型中間件是指用在不同行業(yè)、不同部門間的通訊轉(zhuǎn)發(fā)和協(xié)議轉(zhuǎn)換的軟件,在不同的行業(yè)、不同的系統(tǒng)間提供通訊轉(zhuǎn)發(fā)和協(xié)議轉(zhuǎn)換的橋梁作用。 本次設(shè)計的中間件是交易型中間件。該中間層既包括服務(wù)也包括請求中間件是一種獨立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源。在中間件誕生之前,多采用傳統(tǒng)C/S二層結(jié)構(gòu)。C/S模式在操作過程中采取的是主動請求方式。相連接的系統(tǒng),即使它們具有不同的接口,但通過中間件相互之間仍能交換信息。本次設(shè)計的目的是掌握利用軟件工程的思想方法和TCP/IP設(shè)計出用于不同行業(yè)和部門間的通訊轉(zhuǎn)發(fā)或協(xié)議轉(zhuǎn)換軟件—中間件,尤其掌握這種設(shè)計的思想和方法。本設(shè)計的目的是使參與設(shè)計者掌握利用軟件工程的思想方法和TCP/IP設(shè)計出用于不同行業(yè)和部門間的通訊轉(zhuǎn)發(fā)或協(xié)議轉(zhuǎn)換軟件—中間件,尤其掌握這種設(shè)計的思想和方法。具體地是:接收客戶方數(shù)據(jù);組織服務(wù)器方所需數(shù)據(jù);重組服務(wù)方返回數(shù)據(jù),并返回給客戶方;留跡;本地業(yè)務(wù)統(tǒng)計。Server_mserver_1……MiddleClient_2Client_1…… 中間件服務(wù)框圖serverClient_nClient_1…… c/s客戶/服務(wù)器模式框圖socket()建立服務(wù)方套接字描述符為sSocket()建立服務(wù)方套接字,描述符為sConnect()建立服務(wù)方連接Send()和write()向服務(wù)方發(fā)送請求客戶方等待服務(wù)方Recv()和read()讀取服務(wù)方數(shù)據(jù)Close()關(guān)閉最初套接字s,結(jié)束服務(wù)器服務(wù)Close()關(guān)閉套接字ns,結(jié)束本次對話進行服務(wù)處理成功后返回與s具有相同特性的套接字accept(s)等待客戶方鏈接Listen(s)通知TCP,準(zhǔn)備接受bind(s)綁定套接字與本地地址和端口recv()和read()通過ns讀取客戶方數(shù)據(jù)Send()和writer()向客戶方提供服務(wù)結(jié)果Close()關(guān)閉套接字s,結(jié)束本次通話 程序設(shè)計類圖 開始登錄結(jié)束查詢用戶管理員 輸入密碼續(xù)借刪除添加借書還書顯示借閱信息 請求服務(wù)中間件數(shù)據(jù)庫服務(wù)器 和數(shù)據(jù)庫交換數(shù)據(jù) 程序設(shè)計流程圖四、詳細設(shè)計 【1】創(chuàng)建套接字—socket() 應(yīng)用程序在使用套接字前,必須擁有一個套接字,系統(tǒng)調(diào)用socket()向應(yīng)用程序提供創(chuàng)建套接字的手段。my_addr為本方地址數(shù)據(jù)結(jié)構(gòu)。 在面向連接的協(xié)議中,該調(diào)用導(dǎo)致本地系統(tǒng)和外部系統(tǒng)之間連接實際建立。int recv(int s,void *buf,int len,int flags)。其常用法為:mysql [OPTIONS] [database] 常用參數(shù)有:?, help: 幫助D, database=DB_name: 指定數(shù)據(jù)庫h, host=Host_name: 指定主機u, user=DB_user_name: 指定用戶p[…], password[=…]: 指定密碼 客戶端命令行 命令行提示符下輸入:mysql 或 mysql –u root進入mysql系統(tǒng)。mysql)。 }mysql_free_result(result)。在仔細研究代碼后,我在管理員增加圖書的代碼后添加了break語句,成功的解決了錯誤。create table admi(id char(10) not null primary key,name char(50) not null,password char(15))。insert into books values (7,book7,g,7)。 strtok_r(temp,。 p=NULL。 int i,j,n=0。 mysql_close(amp。mysql)。 } n=mysql_num_rows(result)。imysql_num_fields(result)。 printf(opdb successfully!\n)。 if((opdb(cmd1,NULL,1)==0)amp。 struct servent *sp。 exit(1)。 if(bind(s,(struct sockaddr *)amp。 if((ns=accept(s,0,0))==1) { // wait a connection */ fprintf(stderr,error: accept)。 } if(pid==0){ // entered child proccedure close(s)。 char id[50],password[50]。 bzero(password,sizeof(password))。\039。: //update user info getm(buf,rec)。 case 39。 break。password=\%s\,rec[0][0],rec[0][1])。L39。 break。b_id=\%s\,rec[0][0],rec[0][1])。 } break。 } break。 opdb(cmd,writer,0)。 break。 opdb(cmd,buf,1)。R39。 checkstat(rec[0][0])。: getm(buf,rec)。 if(n=0){ printf(write error!\n)。amp。 buf[0]=39。 sprintf(cmd,select * from books where id=\%s\,rec[0][0])。 if(write(ns,buf,strlen(buf))=0) { printf(Write wrong!\n)。 opdb(cmd,buf,1)。D39。 } break。 int ss,spid。 sservice=argv[2]。 exit(5)。 close(s)。 } if((pid=fork())==1){ // conneted, and then create child proc fprintf(stderr,server: fork error!)。 exit(5)。 =sp1s_port。 while(1) { bzero(buf,sizeof(buf))。 exit(1)。 if(write(ns,buf,strlen(buf))!=strlen(buf)){ fprintf(stderr,Write socket ns error!\n)。//通用地址結(jié)構(gòu)sockaddr struct servent *s
點擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1