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

正文內(nèi)容

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

2024-11-27 02:13 本頁面
   

【正文】 return head。 wc = send(pisocketfd, buf, BUFF_SIZE, 0)。 buf_c[0]=39。 while(*p_addr) { *p++=*p_addr++。 buf[1]=39。 char buf[BUFF_SIZE]={0}。 err_sys(server send ) } } return 0。 wc = send(headsocketfd, buffer, BUFF_SIZE, 0)。 // strcat(buffer,))。)==0) printf(aaaaaaaaaaaaaaaa\n)。 err_sys(server send) } } else { buffer[0]=find_user(head,newfd)+39。, 3, 0)。039。 char buffer[BUFF_SIZE]={0}。headsocketfd!=newfd) head=headnext。 free(del_p)。amp。 free(head)。 } USER_LIST delete_pointer(int num,USER_LIST head) { USER_LIST del_p。 pointersocketfd=sockfd。 } 附錄 D: include USER_LIST creat_pointer(void) { USER_LIST head。39。amp。 } //printf(\n)。 } printf(\n)。39。 27 buf++。 if(buf[0]==39。readfds)) break。 err_sys(server is shut down) } else { buffer_r[BUFF_SIZE 1] = 39。 if(rc == 1) { close(sockfd)。readfds)) 26 { memset(buffer_r, 39。 //0 wc = send(sockfd, buffer_w, BUFF_SIZE, 0)。readfds)) { memset(buffer_w, 39。 err_sys(server select) } break。ts)。 FD_SET(sockfd, amp。 FD_ZERO(amp。 int ret = 1。 sleep(3)。server_addr, addrlen) == 1) { if(count ++ 3) { close(sockfd)。 = htons(server_port)。 //closed if(sockfd == 1) err_sys(client socket) else printf(sockfd=%d\n, sockfd)。: strncpy(server_ip, optarg, 15)。: 24 server_port = atoi(optarg)。 exit(EXIT_FAILURE)。 char server_ip[16] = {39。 socklen_t addrlen = addr_size。attr)。 continue。 if(delet!=NULL) head=delet。pt, amp。 next_p=next_pnext。 head=next_p。 if (newfd == 1) { if (errno == EINTR) { continue。client_addr, addr_size)。 USER_LIST next_p=NULL。attr, PTHREAD_CREATE_DETACHED)。 int ret = 1。 err_sys(server listen) } int newfd = 1。 if (bind(sockfd, (struct sockaddr *)amp。server_addr, addr_size)。 setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (void *)amp。 if (argc != 3) { fprintf(stderr, Usage:%s p server_port\n, argv[0])。readfds)) }//select return value 0 }//while (RUNNING) close(newfd)。 err_sys(client is shut down) } else { buffer_r[BUFF_SIZE 1] = 39。 send_list(head)。 20 rc = recv(newfd, buffer_r, BUFF_SIZE, 0)。 } else { /**************Server read*****************/ if (FD_ISSET(newfd, amp。 send_list( head)。ts)。 FD_SET(newfd, amp。 FD_ZERO(amp。 int rc = 1, wc = 1。 int newfd = *(int *)arg。 服務(wù)器端: 等待鏈接界面: 鏈接成功界面: 客戶端: 客戶注冊成功界面: 通信過程: 用戶 1 和用戶 2 相互通信界面: (在此圖中同時(shí)顯示了在線用戶) 18 每登陸一個(gè)用戶,系統(tǒng)會自動注冊,保存在 中,通信時(shí)只需指定用戶,就可以實(shí)現(xiàn)多線程間通信。 其 makefile 指令為: CC := gcc CFLAGS += w g O O2 O3 o RM := rm rf *~ LIBS := lpthread all: $(CC) $(CFLAGS) multithread_tcp_server $(LIBS) $(CC) $(CFLAGS) multithread_tcp_client $(LIBS) clean: $(RM) 執(zhí)行編譯命令為: 編譯沒有錯誤則會生成可執(zhí)行文件。 3 主機(jī)接受請求通信開始 ( 1) 主機(jī)利用 accept 接收請求 ( 2) 創(chuàng)建子進(jìn)程,顯示出聊天室界面 ( 3) 接收返回信息,顯示鏈接成功,并退出鏈接。 (2) IP 地址及其處理過程詳見上一章。它的接收也作為文件結(jié)束符傳遞給應(yīng)用進(jìn)程,因?yàn)?FIN的接收意味著應(yīng)用進(jìn)程在相應(yīng)的連接上再也接收不到額外數(shù)據(jù);一段時(shí)間之后,接收到文件結(jié)束符的應(yīng)用進(jìn)程調(diào)用 close 關(guān)閉它的 socket。例如 Web 服務(wù)器在 80 號端口監(jiān)聽,當(dāng)有客戶向80號端口發(fā)出連接請求時(shí) (如 圖 3- 2 所示) ,服務(wù)器將接受請求且由服務(wù)器進(jìn)程派生出子進(jìn)程和新的套接口(由 accept()的返回值指向)來與客戶連接并通信 (如 圖 所示) 。 功能:接受連接隊(duì)列的服務(wù)請求,并返回一個(gè)新的 socket 描述符,來供這個(gè)新連接來使用。 原型: int listen(int sockfd, int backlog)。 說明: sockfd 是一個(gè)要關(guān)閉的套接字。 原型: int bind(int sockfd, struct sockaddr *my_addr ,int addrlen). 功能:使套接口與 IP地址和端口號綁定。 socket()和 bind()函數(shù) 原型: int socket(int domain,int type, int protocol). 功能:創(chuàng)建指定類型的套接口并返回套接口描述符。 2. IP 地址轉(zhuǎn)換 函數(shù) i_addr(),它能夠把一個(gè)用數(shù)字和點(diǎn)表示 IP 地址的字符串轉(zhuǎn)換成一個(gè)無符號長整型。 1. 有關(guān)的轉(zhuǎn)換函數(shù) 套接字字節(jié)轉(zhuǎn)換程序的列表: htons() —— “Host to Network Short” 主機(jī)字節(jié)順序轉(zhuǎn)換 網(wǎng)絡(luò)字節(jié)順序(對無符號短型進(jìn)行操作 4 bytes)。sin_port 和 sin_sddr 應(yīng)該轉(zhuǎn)換成為網(wǎng)絡(luò)字節(jié)優(yōu)先順序; struct in_addr 其定義如下: struct in_addr{ unsigned long s_addr。 /* Inter 地址 */ unsigned char sin_zero[8]。 sa_data 則包含該 socket 的 IP地址和端口號。 struct sockaddr { unsigned short sa_family。應(yīng)用程序中使用套接字來調(diào)用套接口,套接字可認(rèn)為是指向套接口的指針,就像文件描述符是指向文件的指針一樣。常用的 Socket 類型有三種:流式套接口、數(shù)據(jù)報(bào)式套接口和原始套接口。 基于 linux 的 socket 網(wǎng)絡(luò)編程 端口和套接口 若一臺主機(jī)上同時(shí)有多個(gè)應(yīng)用程序運(yùn)行,他們都有可能使用 TCP 或 UDP協(xié)議進(jìn)行通信,則傳輸層協(xié)議收到數(shù)據(jù)后如何區(qū)分?jǐn)?shù)據(jù)是傳給哪一個(gè)應(yīng)用程序的呢?為此引用了端口和套接口。在函數(shù)中聲明的靜態(tài)變量常常帶來問題,函數(shù)的返回值也會有問題。 所需頭文件 include 函數(shù)原型 void pthread_exit(void *retval) 函數(shù)傳入值 retval:pthread_exit()調(diào)用 者線程的返回值,可由其他函數(shù)如pthread_join 來檢索獲取 等待線程退出并釋放資源 pthread_join() 所需頭文件 include 函數(shù)原型 int pthread_join ((pthread_t th, void **thread_return)) 函數(shù)傳入值 th:等待線程的標(biāo)識符 9 thread_return:用戶定義的指針,用來存儲被等待線程的返回值(不為 NULL時(shí)) 函數(shù)返回值 成功: 0 出錯: 1 線程數(shù)據(jù)處理 線程數(shù)據(jù)處理和進(jìn)程相比,線程的最大優(yōu)點(diǎn)之一是數(shù)據(jù)的共享性,各個(gè)進(jìn)程共享父進(jìn)程處沿襲的數(shù)據(jù)段,可以方便的獲得、修改數(shù)據(jù)。線程是在共享內(nèi)存空間中并發(fā)的多道執(zhí)行路徑,它們共享一個(gè)進(jìn)程的資源,如文件描述和信號處理。 shell 使你能不離開 gdb 就執(zhí)行 UNIX shell 命令。 quit 終止 gdb。 list 執(zhí)行一行源代碼但不進(jìn)入函數(shù)內(nèi)部。 gdb 基本命令 gdb 支持很多的命令使你能實(shí)現(xiàn)不同的功能。 GDB 調(diào)試 用 gdb 調(diào)試 GCC 程序 為調(diào)試編譯代碼 (Compiling Code for Debugging) gdb 正常工作 , 你必須使你的程序在編譯時(shí)包含調(diào)試信息。(任意的 Shell 命令 ) 這是一個(gè)文件的依賴關(guān)系,也就是說, target 這一個(gè)或多個(gè)的目標(biāo)文件依賴于 prerequisites中的文件,其生成規(guī)則定義在 mand 中??梢?, makefile 都成為了一種在工程方面的編譯方法。 GNU Makefile Makefile 簡介 makefile 關(guān)系到了整個(gè)工程的編譯規(guī)則。 O2,比 O更好的優(yōu)化編譯、連接,當(dāng)然整個(gè)編譯、連接過程會更慢。 o output_filename,確定輸出文件的名稱為 output_filename,同時(shí)這個(gè)名稱不能和源文件同名。 GCC 基本使用方法 在使用 Gcc 編譯器的時(shí)候,我們必須給出一系列必要的調(diào)用參數(shù)和文件名稱。接著調(diào)用 cc1進(jìn)行編譯,這個(gè)階段根據(jù)輸入文件生成以 .o 為后綴的目標(biāo)文件。 GCC 很快地?cái)U(kuò)展,變得可處理 C++。而鏈接客戶又分為登陸客戶和未登陸客戶,這就通過修改鏈表上客戶的名字。首先要存儲客戶的個(gè)人資料,相當(dāng)于注冊。它具備的基本功能包括注冊、登陸、一對一私聊、查看在線人數(shù)等。 Tcp/ip 這個(gè)種網(wǎng)絡(luò)協(xié)議是 inter 的基礎(chǔ)協(xié)議。 Socket 接口是一個(gè)通用的接口,它不僅支持各種網(wǎng)絡(luò)工作形式還是一個(gè)交互式通訊機(jī)制。 優(yōu)點(diǎn) Linux 作為一個(gè)開源的操作系統(tǒng) Linux 的許多特性有利于網(wǎng)絡(luò)編程。 the linux。在 Linux 下編寫并調(diào)試服務(wù)器端程序和客戶端程序 ,實(shí)現(xiàn)了客戶、服務(wù)器之間的連接和通信。 1 Linux
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1