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

正文內(nèi)容

基于c語言的局域網(wǎng)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)論文-資料下載頁

2024-11-08 06:26本頁面

【導(dǎo)讀】1.綜述局域網(wǎng)聊天系統(tǒng)的現(xiàn)狀和設(shè)計(jì)系統(tǒng)的原因;3.對局域網(wǎng)聊天系統(tǒng)進(jìn)行系統(tǒng)分析,功能模塊的分析與設(shè)計(jì);6.對系統(tǒng)整體以及各模塊進(jìn)行調(diào)試測試;7.訓(xùn)練檢索文獻(xiàn)資料和利用文獻(xiàn)資料的能力;8.訓(xùn)練撰寫技術(shù)文檔與學(xué)位論文的能力。2.熟悉開發(fā)工具的、開發(fā)環(huán)境的配置和使用;3.了解開發(fā)局域網(wǎng)聊天系統(tǒng)的相關(guān)技術(shù);5.熟練掌握基于LINUX平臺編寫C語言相關(guān)程序;1.內(nèi)容完整、層次清晰、敘述流暢、排版規(guī)范的畢業(yè)設(shè)計(jì)論文;[8]元宇聰.基于WindowsAPI的簡單聊天軟件的設(shè)計(jì)與實(shí)現(xiàn)[J].新課程(下).2020. 滿足公司內(nèi)部員工的交流。在整個軟件開發(fā)活動中,本文更重視軟件的分析和設(shè)計(jì)兩個階段的需求。階段對軟件的形成與確立起到了至關(guān)重要的作用。其次本編碼階段其實(shí)就是將自然語言。編寫成計(jì)算機(jī)能夠讀懂的機(jī)械語言,這個問題不需要研究者太多的思考。

  

【正文】 = open(, O_CREAT|O_RDWR|O_APPEND,0644)) 0) sys_error(open, errno)。 struct Regmsg Reg。 memset(amp。Reg, 0, sizeof(Reg))。 int flag = 0。 while(1){ ssize_t size = read(fd, amp。Reg, sizeof(Reg))。 if(size 0) { sys_error(read, errno)。 return 0。 } if(size == 0){ //用戶名不存在 ,進(jìn) 行注冊 = flag+1。 strcpy(, name)。 strcpy(, passwd)。 if(write(fd, amp。Reg, sizeof(Reg)) 0){ sys_error(write, errno)。 return 1。 } break。 } if(size 0) flag++。 //為了取得已有數(shù)量 , if(strcmp(, name) == 0) //用戶名存在 , 返回上一級進(jìn)行操作 return 1。 } close(fd)。 return 1。 } 職場大變樣社區(qū)( ):下載畢業(yè)設(shè)計(jì)成品 27 用戶注冊成功如圖 63 所示。 圖 63 用戶注冊成功 用戶登錄 用戶登錄的實(shí)質(zhì)是給服務(wù)器發(fā)送 log 協(xié)議 , 服務(wù)器根據(jù)該協(xié)議來確定客戶端的請求是用戶登陸請求 , 用戶登錄請求也需要在服務(wù)器進(jìn)行相應(yīng)判斷 , 比如 , 用戶名是否存在 , 密碼是否正確 , 如果通過判斷 ,確定該用戶名密碼可以登錄,則服務(wù)器獲取到該客戶 端的 socketfd 加上時間戳后顯示到服務(wù)器端。 int Logmsgwrite(const char*name, const char* passwd) //處理用戶登錄 { int fd。 if((fd = open(, O_CREAT|O_RDWR|O_APPEND,0644)) 0) sys_error(open, errno)。 struct Regmsg Log。 memset(amp。Log, 0, sizeof(Log))。 while(1){ ssize_t size = read(fd, amp。Log, sizeof(Log))。 if(size 0) //登錄出錯 { sys_error(read, errno)。 return 0。 職場大變樣社區(qū)( ):下載畢業(yè)設(shè)計(jì)成品 28 } if(size == 0){ //用戶名不存在 ,進(jìn)行注冊 return 1。 } if(size 0){ if((strcmp(, name) == 0) amp。amp。 \ (strcmp(, passwd) == 0)) //用戶名密碼匹配 return 1。 if((strcmp(, name) == 0) amp。amp。 \ (strcmp(, passwd) != 0)) //用戶名存在但密碼不匹配 return 2。 } } close(fd)。 return 1。 } while(1){ if(read(sockfd, buff, sizeof(buff)) 0) sys_error(client read, errno)。 if(strstr(buff, Reg)){ //注冊結(jié)果 if(strcmp(buff, Reg:successed) == 0) { close(sockfd)。 printf(恭喜您注冊成功 !\n)。 break。 } if(strcmp(buff, Reg:error) == 0) { close(sockfd)。 職場大變樣社區(qū)( ):下載畢業(yè)設(shè)計(jì)成品 29 printf(很抱歉注冊失敗 !\n)。 break。 } if(strcmp(buff, Reg:username) == 0) { close(sockfd)。 printf(用戶名重復(fù) ,注冊失敗 !\n)。 break。 } } if(strstr(buff, Log)){ //登錄結(jié)果 if(strstr(buff, Log:successed) != NULL) { printf(恭喜您登錄成功 !\n)。 sleep(1)。 strcpy(buff, buff+14)。 chatmsg(sockfd, buff)。 break。 } if(strcmp(buff, Log:error) == 0) { close(sockfd)。 printf(很抱歉登錄失敗 !\n)。 break。 } if(strcmp(buff, Log:username) == 0) { close(sockfd)。 printf(用戶名不存在 ,登錄失敗 !\n)。 break。 職場大變樣社區(qū)( ):下載畢業(yè)設(shè)計(jì)成品 30 } if(strcmp(buff, Log:errorpasswd) == 0) { close(sockfd)。 printf(用戶名存在 ,密碼不匹配 !\n)。 break。 } } } 成功登陸的截圖如圖 64 所示: 圖 64 登陸成功 私聊 群聊的實(shí)現(xiàn) 群聊的協(xié)議為 who, 私聊的協(xié)議為 chat, 服務(wù)器通過這兩個協(xié)議來判斷該用戶的請求是私聊請求還是群聊請求 , 如果是群聊請求 , 就將該用戶的信息 ,通過循環(huán)順序表的方式發(fā)送給每一個在線用戶,如果是私聊請求,則將該信息通過制定 socketfd 的方式制定給特定的用戶。 void* do_service(void* arg){ long sockfd = (long)(*(int *)arg)。 int size。 char name[10]={0}。 char chat[1024]={0}。 職場大變樣社區(qū)( ):下載畢業(yè)設(shè)計(jì)成品 31 char time[20]={0}。 while(1){ size = read(sockfd, buff, sizeof(buff))。 //接收群聊信息 if(size 0){ sys_error(read, errno)。 }else if(size == 0){ printf(服務(wù)器斷開連接 \n)。 close(sockfd)。 exit(1)。 } if(strstr(buff, who:) amp。amp。 !strstr(buff, chat:@)){ //解析字符串 ,顯示群聊 char* timeswap = strstr(buff, time:)。 strcpy(time, timeswap)。 strcpy(time, time+6)。 //解析時間 char* chatswap = strstr(buff, chat:)。 strcpy(chat, chatswap)。 strncpy(name, buff, strlen(buff)strlen(chatswap))。 name[strlen(buff)strlen(chatswap)] = 39。\039。 strcpy(name, name+5)。 //解析用戶名 strncpy(chat, buff, strlen(buff)strlen(timeswap))。 chat[strlen(buff)strlen(timeswap)] = 39。\039。 strcpy(chat,chat+strlen(buff)strlen(chatswap)+6)。 //解析聊天內(nèi)容 printf(%s 在群聊中說 :%s, Time:%s,name,chat,time)。 } if(strstr(buff, who:) amp。amp。 strstr(buff, chat:@)){ //解析字符串 ,顯示私聊 char* timeswap = strstr(buff, time:)。 strcpy(time, timeswap)。 strcpy(time, time+6)。 //解析時間 char* chatswap = strstr(buff, chat:)。 職場大變樣社區(qū)( ):下載畢業(yè)設(shè)計(jì)成品 32 strcpy(chat, chatswap)。 strncpy(name, buff, strlen(buff)strlen(chatswap))。 name[strlen(buff)strlen(chatswap)] = 39。\039。 strcpy(name, name+5)。 //解析用戶名 char* chatswap1 = strstr(buff, @:)。 strcpy(chat, chatswap1)。 strncpy(chat, chat, strlen(chat)strlen(timeswap))。 chat[strlen(chat)strlen(timeswap)] = 39。\039。 strcpy(chat, chat+2)。 //解析聊天內(nèi)容 printf(%s 給你發(fā)送了一條悄悄話 :%s, Time:%s, name, chat, time)。 } } return (void*)0。 } 群聊的實(shí)現(xiàn)截圖如圖 65 圖 66 所示,私聊的實(shí)現(xiàn)如圖 所示。 圖 65 用戶 1在聊天室群聊一句內(nèi)容 圖 66 用戶 2和用戶 3都可以收到 職場大變樣社區(qū)( ):下載畢業(yè)設(shè)計(jì)成品 33 圖 67 用戶 1用“ @用戶名:”的形式向用戶 2發(fā)送 hello信息 圖 68只有用戶 2可以收到 職場大變樣社區(qū)( ):下載畢業(yè)設(shè)計(jì)成品 34 7 軟件測試 什么是軟件測試 軟件測試(英語: Software Testing),描述一種用來促進(jìn)鑒定軟件的正確性、完整性、安全性和質(zhì)量的過程。換句話說,軟件測試是一種實(shí)際輸出與預(yù)期輸出間的審核或者比較過程。軟件測試的經(jīng)典定義是:在規(guī)定的條件下對程序進(jìn)行操作,以發(fā)現(xiàn)程 序錯誤,衡量軟件質(zhì)量,并對其是否能滿足設(shè)計(jì)要求進(jìn)行評估的過程。 軟件測試原理 測試主要依據(jù)是被試系統(tǒng)的研制任務(wù)書和技術(shù)規(guī)格書,是對軟件雄體功能和性能的綜合測試與評估。測試原理是軟件測試活動的理論基礎(chǔ),測試方法是鍘試原理的實(shí)際應(yīng)用和獲得測試數(shù)據(jù)的手段?;谲浖墓残?,對于軟件的測試要遵循一般軟件的測試原理和方法。同時,針對軟件的特性,必須找到合適的測試方法。 測試用例的合理性對于軟件的測試與評估具有關(guān)鍵作用,而如何使設(shè)計(jì)的用例、合理并且典型有效并不容易。所以應(yīng)該與軟件的研制人員以及最終用戶一起,有針 對性地研究實(shí)際操作環(huán)境并加以描述,形成合理的測試用例集。另一方面,軟件運(yùn)行環(huán)境的復(fù)雜程度對軟件評估具有重要作用,所以應(yīng)產(chǎn)生盡量逼真的運(yùn)行背景以便于研究。軟件測試的周期如圖 所示。 職場大變樣社區(qū)( ):下載畢業(yè)設(shè)計(jì)成品 35 圖 71 軟件測試 周期 示意圖 軟件測試的方法 軟件測試的方法和技術(shù)是多種多樣的。對于軟件測試技術(shù),可以從不同的角度加以分類 :從是否需要執(zhí)行被測軟件的角度,可分為靜態(tài)測試和動態(tài)測試。從測試是否針對系統(tǒng)的內(nèi)部結(jié)構(gòu)和具體實(shí)現(xiàn)算法的角度來看,可分為白盒測試和黑盒測試。 ( 1)黑盒測試 黑盒測試也稱功能測試或數(shù)據(jù)驅(qū)動測試或基于規(guī) 范的測試,它是在己知產(chǎn)品所應(yīng)具有的功能的前提下,通過測試來檢測每個功能是否都能正常使用,在測試時,把程序看作一個不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測試者對程序接口進(jìn)行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎?
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1