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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于linux下網(wǎng)絡(luò)聊天室的設(shè)計(jì)與實(shí)現(xiàn)(完整版)

  

【正文】 .............................................. 7 第四章 關(guān)鍵技術(shù)分析 ...................................................................................................... 8 linux 線程間通信 .................................................................................................. 8 .................................................................................................... 8 .................................................................................................... 8 線程數(shù)據(jù)處理 ............................................................................................ 9 基于 linux 的 socket 網(wǎng)絡(luò)編程 ............................................................................... 9 端口和套接口 ............................................................................................ 9 套接字和套接口地址結(jié) 構(gòu) ........................................................................ 10 基本轉(zhuǎn)換函數(shù) .......................................................................................... 11 socket()和 bind()函數(shù) ....................................................................... 12 listen()和 accept()函數(shù) ..................................................................... 12 socket 中 TCP 的三次握手建立連接詳解 ..................................................... 13 、 socket 中 TCP 的四次握手釋放連接詳解 ......................................................... 14 第五章 linux下 socket編程實(shí)現(xiàn)過(guò)程 ........................................................................... 15 3 聊天室 socket 編譯鏈接過(guò)程 .............................................................................. 15 具體操作 .......................................................................................................... 16 參考文獻(xiàn): .................................................................................................................... 18 附錄 ............................................................................................................................... 18 附錄 A: ............................................................................... 18 附錄 B: ................................................................................. 23 附錄 C: ................................................................................................. 26 附錄 D: .................................................................................................... 27 致謝 ............................................................................................................................... 30 第一章:緒論 什么是 網(wǎng)絡(luò)編程 網(wǎng)絡(luò)編程就是 通過(guò)使用套接字來(lái)達(dá)到進(jìn)程間通信目的編程 。一個(gè)套接字描述一個(gè)通訊連接的一端。 服務(wù)器端:負(fù)責(zé)處理用戶發(fā)來(lái)的各種信息,管理用戶的動(dòng)作(注冊(cè)、登陸、一對(duì)一私聊、查看在線人數(shù))和管理用戶的信息。當(dāng)客戶一鏈接客戶服務(wù)端時(shí),就給客戶一個(gè)賬號(hào),也就是相當(dāng)于注冊(cè)信息,同時(shí)并 發(fā)服務(wù)器一直在為連接用戶創(chuàng)建線程,系統(tǒng)的總設(shè)計(jì)框圖如下: 5 第 三 章 linux 網(wǎng)絡(luò)聊天室工具 概述 GCC GCC 簡(jiǎn)介 GCC( GNU Compiler Collection, GNU編譯器 套裝),是一套由 GNU 開(kāi)發(fā)的編程語(yǔ)言編譯器。匯編過(guò)程是針對(duì)匯編語(yǔ)言的步驟,調(diào)用 as 進(jìn)行工作,一般來(lái)講, .S 為后綴的匯編語(yǔ)言源代碼文件和匯編、 .s 為后綴的匯編語(yǔ)言文件經(jīng)過(guò)預(yù)編譯和匯編之后都生成以 .o 為后綴的目標(biāo)文件。如果不給出這個(gè)選項(xiàng), gcc 就給出預(yù)設(shè)的可執(zhí)行文件 。一個(gè)工程中的源文件不計(jì)數(shù),其按類型、功能、模塊分別放在若干個(gè) 目錄中, makefile 定義了一系列的規(guī)則來(lái)指定,哪些文件需要先編譯,哪些文件需要后編譯,哪些文件需要重新編譯,甚至于進(jìn)行更復(fù)雜的功能操作,因?yàn)? makefile 就像一個(gè) Shell 腳本一樣,其中也可以執(zhí)行操作系統(tǒng)的命令。說(shuō) 白一點(diǎn)就是說(shuō), prerequisites中如果有一個(gè)以上的文件比 target 文件要新的話, mand 所定義的命令就會(huì)被執(zhí)行。 這些命令從簡(jiǎn)單的文件裝入到允許你檢查所調(diào)用的堆棧內(nèi)容的復(fù)雜命令 gdb 調(diào)試時(shí)會(huì)用到的一些命令。 watch 使你能監(jiān)視一個(gè)變量的值而不管它何時(shí)被改變。因此,大大減少了上下文切換的開(kāi)銷。因?yàn)槿绻祷氐氖呛瘮?shù)內(nèi)部靜態(tài)聲明的空間的地址,則在一個(gè)線程調(diào)用該函數(shù)得到地址后使用該地址指向的數(shù)據(jù)時(shí),別的線程可能調(diào)用此函數(shù)并修改了這一段數(shù)據(jù)。流式是一種面向連接的 Socket,針對(duì)于面向連接的 TCP 服務(wù)應(yīng)用;數(shù)據(jù)報(bào)式Socket 是一種無(wú)連接的 Socket,對(duì)應(yīng)于無(wú)連接的 UDP 服務(wù)應(yīng)用;原始套接口是針對(duì)網(wǎng)絡(luò)層編程用的套接口,例如 ping 命令的編寫要用到原始套接口,因?yàn)閜ing 的底層協(xié)議是 ICMP,而 ICMP 屬于網(wǎng)絡(luò)層。 /* 地址族, AF_XXX */ char sa_data[14]。 /* 添 0(和 struct sockaddr 一樣大小 */ 應(yīng)用層 傳輸層 網(wǎng)絡(luò)層 通信子網(wǎng)層 , tel, ftp,? Dns, rip, snmp TCP TCP , FDDI, PPP,?? IP 端口 SAP SAP ARP ,RARP ICMP ,IGMP 11 }。 htonl() —— “Host to Network Long” 主機(jī)字節(jié)順序轉(zhuǎn)換網(wǎng)絡(luò)字節(jié)順序(對(duì)無(wú)符號(hào)短型進(jìn)行操作 8 bytes)。 參數(shù)說(shuō)明: domain 參數(shù)指定 socket 的域名,為 AF_INET 或 AF_UNIX。 listen()和 accept()函數(shù) 原型: int connect( int sockfd,struct sockaddr *serv_addr,int addrlen)。 參數(shù)說(shuō)明: sockfd 是被監(jiān)聽(tīng)的 socket 描述符, addr 通常是一個(gè)指向sockaddr_in 變量的指針,該變量用來(lái)存放提出請(qǐng)求服務(wù)的主機(jī)的信息(某臺(tái)主機(jī)從某個(gè)端口發(fā)出該請(qǐng)求); addrlen 通常為一個(gè)指向值為 sizeof(struct sockaddr_in)的整型指針變量。這導(dǎo)致它的 TCP 也發(fā)送一個(gè) FIN N;接收到這個(gè) FIN 的源發(fā)送端 TCP 對(duì)它進(jìn)行確認(rèn)。 ( 4) 關(guān)閉客戶端 socket。 參考文獻(xiàn): [1] :協(xié)議 TCP/IP IIIustrated Volume 1: The Protocols. [2] Steven, Bill Fenner, Andrew 卷 2. [3]Kurt Wall. GNU/linux編程指南 . [4]嚴(yán)蔚敏,吳偉明 .數(shù)據(jù)結(jié)構(gòu)( C 語(yǔ)言版) . [5]譚浩強(qiáng) .C 語(yǔ)言程序設(shè)計(jì) . [6]Kenh 和指針 . [7]Mendel shell 編程從入門到精通 . 附錄 該附錄主要顯示的時(shí),該系統(tǒng)的源代碼 : 附錄 A: include include USER_LIST head=NULL。 while (RUNNING) { select_label: maxfd = ((maxfd newfd) ? maxfd : newfd)。readfds)。 close(newfd)。 if (rc == 1) { close(newfd)。\039。 exit(EXIT_FAILURE)。 = AF_INET。 struct sockaddr_in client_addr。 pthread_attr_setscope(amp。 newfd = accept(sockfd, (struct sockaddr *)amp。 write_list(next_p,num,newfd,)。attr, start_routine, (void *)amp。 } else { fprintf(stdout, Master thread[%u] which belongs to process[%d] creates a new slave thread[%u], pthread_self(), getpid(), pt)。 char buffer_r[BUFF_SIZE], buffer_w[BUFF_SIZE]。 } int c = 1。 break。 = i_addr(server_ip)。 } } fd_set readfds。readfds)。 switch(ret) { case 1://select error if (errno == EINTR) { goto select_label。\039。\039。\039。39。amp。 } else if(buf[0]==39。) { printf(客戶端不存在 \n)。 pointersin_addr=sin_add。 head=NULL。 return NULL。 while(head!=NULLamp。 if (wc == 1) 29 { //delete_pointer(find_user(head,newfd), head)。 buffer[1]=39。 if (wc == 1) { //delete_pointer(find_user(head,newfd), head)。 char buf_c[2]={0}。 30 } */ strcat(buf,buf_c)。 if (wc == 1) err_sys(server send xx) pi=pinext。 } USER_LIST last_p(USER_LIST head) { while(headnext!=NULL) head=headn
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1