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

正文內(nèi)容

基于linux的手機(jī)繳費(fèi)系統(tǒng)-免費(fèi)閱讀

  

【正文】 G39。 } if((pid=fork())==1) { printf(開(kāi)創(chuàng)進(jìn)程失敗 )。 _fd=accept(listen_fd,(struct sockaddr*)amp。mysql))。 } if(mysql_init(amp。 close(listen_fd)。//將 srv_addr 初始化為全 0 //設(shè)定地址參數(shù) =AF_INET。//存放 sql語(yǔ)句 //初始化網(wǎng)絡(luò)連接參數(shù) if(listen_fd0) { perror(創(chuàng)建監(jiān)聽(tīng)套接字失敗 )。//存放服務(wù)器端口信息,從 services 文件讀取 struct sockaddr_in srv_addr。 char log_buf[1024]。 exit(1)。 close(_fd)。 memcpy(tmp+6,row[2],30)。 log(log_file,log_buf)。 exit(4)。 exit(3)。//密碼 char name[30]。 } } } if(send_buf[0]==39。mysql))。 } else { float money。mysql)。mysql)。 printf(銀行密碼 %s\n,send_buf+21)。 } //創(chuàng)建子進(jìn)程成功 if(pid==0) { close(listen_fd)。len)。mysql))。 } //連接 users 數(shù)據(jù)庫(kù) if(mysql_init(amp。 close(listen_fd)。//將 srv_addr 初始化為全 0 //設(shè)定地址參數(shù) =AF_INET。//存放 sql語(yǔ)句 //初始化網(wǎng)絡(luò)連接參數(shù) if(listen_fd0) { perror(創(chuàng)建監(jiān)聽(tīng)套接字失敗 )。//處理請(qǐng)求進(jìn)程 id struct servent *sp。 char log_file[10]=。 if((fd=open(filepath,O_WRONLY|O_CREAT|O_APPEND,0644))==1) { fprintf(stderr,Log file %s open error!\a\n,log)。 write(fd,buff,strlen(buff))。 time_t t = time(0)。 exit(1)。 exit(6)。 exit(6)。//關(guān)閉通信套接字 continue。 printf(%s\n,tmp_r+4)。 char tmp[1024]。 printf(%s\n,tmp_r+55)。 printf(銀行賬號(hào) :%s\n,tmp+2)。 printf(%s\n,send_buf+2)。 memcpy(t+4,b_rcv+4,50)。 } else if(p_rcv[2]==39。O39。 memcpy(b_send+2,send_buf+17,19)。 char p_send[1024]。 if(len=read(_fd,send_buf,1024)0) { if(send_buf[0]==39。 return 1。 while(1) { len=sizeof(clt_addr)。 } if(!mysql_real_connect(amp。 log(log_file,log_buf)。 if(ret==1) { perror(綁定服務(wù)套接字失敗 )。 exit(5)。//存放 sql語(yǔ)句 //初始化網(wǎng)絡(luò)連接參數(shù) int DataSend(char *service,char *dest,char sed_buf[1024],char rcv_buf[1024])。//處理請(qǐng)求進(jìn)程 id struct servent *sp。 七 、 源程序清單 中間件代碼: include sys/ include sys/ include i/ include include include include sys/ include include include include int main(int argc,char *argv[]) { int log(char *filepath,char *buff )。 ( 3)對(duì)程序進(jìn)行編譯連接 gcc – o c1 – L/usr/lib/mysql lmysqlclient gcc – o m1 – L/usr/lib/mysql lmysqlclient gcc – o s1 – L/usr/lib/mysql lmysqlclient gcc – o s2 – L/usr/lib/mysql lmysqlclient (5) 運(yùn)行程序 ./m1 x 切換到終端 2 ./s1 world 切換到終端 3 ./s2 zhongjr 切換到 終端 4 ./m1 x my 5.2 結(jié)果及簡(jiǎn)單分析 1:繳費(fèi) 銀行繳費(fèi),銀行服務(wù)器與手機(jī)服務(wù)器都對(duì)信息有相應(yīng)的操作,繳費(fèi)得到確認(rèn)成功后,銀行卡上減去 100 元,手機(jī)話(huà)費(fèi)加上 100 元 2:查詢(xún) 六 、 設(shè)計(jì)中遇到的問(wèn)題及解決方法 我們遇到的第一個(gè)問(wèn)題就是:傳送的消息有許多亂碼,后來(lái)分析得出是字符串?dāng)?shù)組沒(méi)有清零,調(diào)用 bzero(),清空后問(wèn)題解決。具體流程如下: 現(xiàn)金繳納話(huà)費(fèi) 工作流程圖 注:直接現(xiàn)金繳納,不需要通過(guò)銀行服務(wù)器。以下即是每個(gè)模塊間的聯(lián)系圖: 請(qǐng)求 1 請(qǐng)求 2 返回 返回 請(qǐng)求服務(wù) 響應(yīng)服務(wù) 請(qǐng) 求數(shù)據(jù) 返回結(jié)果 ( 1)客戶(hù)機(jī):只負(fù)責(zé)發(fā)送和接收請(qǐng)求信息,此模塊的目的就是將信息呈現(xiàn)給用戶(hù)看,并提供相應(yīng)的操作選擇。 這里的中間件是指交易型中間件。將服務(wù)器端 (Server),中間件( Middleware)和客戶(hù)端 (Client)進(jìn)行連接后可模擬出現(xiàn)實(shí)中手機(jī)交費(fèi)的的功能。在當(dāng)今網(wǎng)絡(luò)社會(huì),技術(shù)成熟,發(fā)揮網(wǎng)絡(luò)技術(shù)優(yōu)勢(shì),利用網(wǎng)絡(luò) 實(shí)現(xiàn)快捷繳費(fèi)已經(jīng)成為可能??蛻?hù)端 (Client)主要實(shí)現(xiàn)用戶(hù)管理、查詢(xún)、交易(交費(fèi),購(gòu)物等),撤銷(xiāo)和統(tǒng)計(jì)等功能;中間件( Middleware)要完成與客戶(hù)要求相符的功能 —— 是本地的本地處理,否則發(fā)往服務(wù)器端 —— 接受客戶(hù)端數(shù)據(jù),組織服務(wù)器端所需數(shù)據(jù),重組服務(wù)端返回?cái)?shù)據(jù),并返回給客戶(hù)方;服務(wù)器端 (Server)主要實(shí)現(xiàn)客戶(hù)端或中間件提出的業(yè)務(wù)請(qǐng)求并做好留跡工作?;?Uinx Socket 和 MySQL數(shù)據(jù)庫(kù),設(shè)計(jì)一個(gè)交易型中間件系統(tǒng)。 三、 體設(shè)計(jì)(程序設(shè)計(jì)組成框圖、流程圖、類(lèi)圖) 3.1 程序設(shè)計(jì)組成框圖 : 實(shí)現(xiàn)工具及方法 基本功能 Linux +Mysql+ VMware Workstation 客 戶(hù) 端 額查詢(xún) 客戶(hù)端發(fā)送:頭部 (A)+ 目標(biāo)(移動(dòng)公司 P) +手機(jī)號(hào)碼(15) +機(jī)主姓名 (30) 中間件發(fā)送:頭部 (B)+ 目標(biāo)(移動(dòng)公司 P) +標(biāo)志( O)+ 手機(jī)號(hào)碼 (15)+ 機(jī)主 (30) +余額 (20)或: 頭部( B)目標(biāo)(移動(dòng)公司 P) +標(biāo)志( E) +出錯(cuò)原因 中 間 件 戶(hù)余額查詢(xún): 客戶(hù)端發(fā)送:頭部( A) +目標(biāo)(銀行 B) +銀行賬戶(hù) (19)+密碼 (10) 中間件發(fā)送:頭部( B) +目標(biāo)(銀行 B) +標(biāo)志( O)+戶(hù)主 (30)+賬號(hào) (19)+余額 (20)或:頭部( B) +目標(biāo)(銀行 B) +標(biāo)志( E) +錯(cuò)誤信息 值 客戶(hù)端發(fā)送:頭部( C) +手機(jī)號(hào)碼 (15)+銀行賬戶(hù) (19)+銀行密碼 (10)+充值金額 (20) 中間件發(fā)送:頭部( D) +標(biāo)志( O)或:頭部( D) +標(biāo)志( E) +錯(cuò)誤原因 中 間 件 服 務(wù) 器 中間件 銀 行服務(wù)器 中間件發(fā)送:頭部( E) +銀行賬戶(hù) (19)+密碼 (10) 服務(wù)器發(fā)送:頭部( F) +標(biāo)志( O) +銀行賬號(hào) (19)+用戶(hù)名 (30)+余額 (20)或:頭部( F) +標(biāo)志( E) +出錯(cuò)原因 中間件發(fā)送:頭部( G) +銀行賬戶(hù) (19)+密碼 (10)+扣款金額 (20) 服務(wù)器發(fā)送:頭部( H) +標(biāo)志( O)或:頭部( H) +標(biāo)志( E) +出錯(cuò)原因 中間件 移 動(dòng)服務(wù)器 中間件發(fā)送:頭部( E) +手機(jī)號(hào)碼 (15) 服務(wù)器發(fā)送:頭部( F) +標(biāo)志( O) +手機(jī)號(hào)碼 (15)+機(jī)主姓名 (30)+余額 (20)或:頭部( F) +標(biāo)志( E) +出錯(cuò)原因 中間件發(fā)送:頭部( G) +手機(jī)號(hào)碼 (15)+繳費(fèi)金額 (20) 服務(wù)器發(fā)送:頭部( H) +標(biāo)志( O)或:頭部( H) +標(biāo)志( O) +出錯(cuò)原因 退出系統(tǒng) 當(dāng)完成一次交易時(shí),就可以退出系統(tǒng)。 ( 3)服務(wù)器:本系統(tǒng)有兩個(gè)服務(wù)器,手機(jī)服務(wù)器( S2)和銀行服務(wù)器( S1) 1)手機(jī)服務(wù)器在這一部分 ,需要實(shí)現(xiàn)的功能是 直接 繳費(fèi)。 查詢(xún)用戶(hù)信息 switch(v[0][0]) 手機(jī)繳費(fèi)成功 從銀行卡扣錢(qián) 手機(jī)繳費(fèi)失敗 返回扣除費(fèi)用 更新銀行數(shù)據(jù)庫(kù) client Service2 (銀行服務(wù)器 ) Service2 (手機(jī)服務(wù)器 ) middle use bank。 ( 3) 以前對(duì)服務(wù)器,客戶(hù)端只是了解理 論知識(shí),這次而要自己動(dòng)手來(lái)開(kāi)發(fā)服務(wù)器,這對(duì)我們來(lái)說(shuō),是一個(gè)巨大的挑戰(zhàn),服務(wù)器就是一個(gè)進(jìn)程,確切的說(shuō)是一個(gè)守候進(jìn)程,要實(shí)現(xiàn)它的功能,是不容易的事情,你要學(xué)會(huì)套接字,地址轉(zhuǎn)換,服務(wù)器相關(guān)的數(shù)據(jù)結(jié)構(gòu)和算法才能進(jìn)行開(kāi)發(fā)和設(shè)計(jì)。//通信套接字描述符 int len。//MySQL 連接 MYSQL_ROW row。 } //從 services 文件中獲取服務(wù)器端口號(hào) if((sp=getservbyname(argv[1],tcp))==NULL) { fprintf(stderr,參數(shù)錯(cuò)誤 )。 =sps_port。 } //監(jiān)聽(tīng)客戶(hù)連接 ret=listen(listen_fd,1024)。 strcpy(log_buf,數(shù)據(jù)連接初始失敗 )。mysq
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1