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

正文內容

基于linux網(wǎng)絡聊天室的設計_畢業(yè)設計論文-資料下載頁

2024-08-27 15:24本頁面

【導讀】網(wǎng)絡聊天軟件,極大程度上方便了處于在世界各地的友人之間的相互聯(lián)系,也使世界好像一下子縮小了,不管你在哪里,只要你上了網(wǎng),打開這些軟件,就可以給你的朋友發(fā)送信息,不管對方是否也同時在線,只要知道他有號碼。只要是基于GNU公約的軟件你都可以任意。使用并修改它的源代碼。但對很多習慣于Windows操作系統(tǒng)的人來說,Linux. 因此制作一個Linux操作系統(tǒng)下的擁有人性化界面的實時通訊工。Torvald和其它的遍布世界各地的編程人員共同開發(fā)的。提到Linux我們不能不提GNU和Unix。行的,但是有一些庫是以GNU函數(shù)庫通用公共許可證發(fā)行的。在自由可用,而且皮后經過任何修改這后都仍然可以自由使用。了基本的TCP/IP功能,此時Linux已經擁有大約10萬的用戶。Linux最強大的生命力在于其公開的開發(fā)過程。Linux這種獨特的自由流暢的開發(fā)模型已被命名為。UDP是用戶數(shù)據(jù)報協(xié)議的簡稱。需要給出任何確認,所以不能保證其交付時可靠。TCP是傳輸控制協(xié)議的簡稱,它是提供一條全雙工的、可靠的信道。

  

【正文】 n my_addr。 if((sockfd = socket(AF_INET,SOCK_STREAM,0)) == 1){ perror(socket)。 exit(1)。 } = AF_INET。 = htons(MYPORT)。 = INADDR_ANY。 bzero(amp。(),8)。 if(bind(sockfd,(struct sockaddr*)amp。my_addr,sizeof(struct sockaddr)) == 1){ perror(bind)。 exit(1)。 } if(listen(sockfd,BACKLOG) == 1){ perror(listen)。 exit(1)。 } if((pthread_create(amp。accthread,NULL,(void *)acceptconnect,NULL)) != 0){ printf(Create thread error!\r\n)。 exit(1)。 } while(1){ char msg[MAXDATASIZE]。 scanf(%s,msg)。 if(send(new_fd,msg,strlen(msg),0) == 1){ perror(send)。 close(new_fd)。 exit(1)。 } if(strcmp(msg,exit) == 0){ printf(Byebye!\n)。 close(new_fd)。 close(sockfd)。 exit(1)。 } } return 0。 } (2) 客戶端源程序清單如下,設文件名為 include include include include include includesys/ includei/ includesys/ include define PORT 3490 define MAXDATASIZE 1024 int sockfd。 pthread_t recthread。 void recmessage(void){ while(1){ int numbytes。 char buf[MAXDATASIZE]。 if((numbytes = recv(sockfd,buf,MAXDATASIZE,0)) == 1){ perror(recv)。 exit(1)。 } buf[numbytes]=39。\039。 if(strcmp(buf,exit) == 0){ printf(Server is closed\n)。 close(sockfd)。 exit(1)。 } printf(Server:%s\n,buf)。 } } int main(int argc,char *argv[]){ struct hostent *he。 struct sockaddr_in their_addr。 if(argc != 2){ fprintf(stderr,usage:client hostname\n)。 exit(1)。 } if((he=gethostbyname(argv[1])) == NULL){ herror(gethostbyname)。 exit(1)。 } if((sockfd = socket(AF_INET,SOCK_STREAM,0)) == 1){ perror(socket)。 exit(1)。 } = AF_INET。 = htons(PORT)。 = *((struct in_addr *)heh_addr)。 bzero(amp。(),8)。 if(connect(sockfd,(struct sockaddr *)amp。their_addr,sizeof(struct sockaddr)) == 1){ perror(connect)。 exit(1)。 } if((pthread_create(amp。recthread,NULL,(void *)recmessage,NULL))!=0){ printf(Create thread error!\r\n)。 exit(1)。 } while(1){ char msg[MAXDATASIZE]。 scanf(%s,msg)。 if(send(sockfd,msg,strlen(msg),0) == 1){ perror(send)。 close(sockfd)。 exit(1)。 } if(strcmp(msg,exit) == 0){ printf(Byebye!\n)。 close(sockfd)。 exit(1)。 } } return 0。 } 4 運行效果 程序測試環(huán)境: linux、 unix、 debian 等操作系統(tǒng)。 測試軟件: putty、 vmware 虛擬機 (1) 在編寫 完 TCP 服務端程序 后,用 gcc –lpthread –o server 生成程序 server。 (2) 在編寫完 TCP 客戶端程序 后,用 gcc –lpthread –o client 生成程序 client (3) 在主機上打開一窗口,運行 server。 (4) 再打開另一個窗口或者在另一個主機上打開一個窗口,運行 client,輸入服務器的 IP 地址,并檢查器結果的正確性。 輸入: 【主】 ./server 【從】 ./client ( 為本機的 ip 地址) 輸出: 【主】 server:got connection from (5) 客戶端、服務器端窗口之間以及交錯發(fā)送信息的方式相互發(fā)送和接收信息。 1) 客戶端、服務器端窗皆通過鍵盤輸入消息內容平回車,以發(fā)送消息給對方; 2) 消息中若使用空格,則作為本條消息結 束及下一條消息的開始; 3) 輸入 exit 則推出運行。 開始運行后,服務器端窗口的執(zhí)行順序為: 1) 鍵入 ―Hello,world! ‖發(fā)送給客戶端 2) 接收客戶端發(fā)來的兩個消息; 3) 鍵入“ OK!‖發(fā)送個客戶端; 4) 輸入 exit 結束。 服務器端運行結果如實驗圖 41 所示。 圖 41 服務器端窗口 開始運行后,客戶端窗口的執(zhí)行順序為: 1) 接收服務器端發(fā)來的消息“ Hello,world!‖。 2) 發(fā)送消息“ hello!“和” Good!‖給服務器端; 3) 接收服務器發(fā)來的消息“ OK!‖。 4) 鍵入 exit 結束。 客戶端運行結果如實驗圖 42 所示。 圖 42 客戶端窗口 上述運行結果表明,客戶端與服務器端之間傳遞的消息已被對方成功接收。
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1