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

正文內(nèi)容

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

2025-08-18 15:24本頁(yè)面

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

  

【正文】 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) 客戶端源程序清單如下,設(shè)文件名為 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 運(yùn)行效果 程序測(cè)試環(huán)境: linux、 unix、 debian 等操作系統(tǒng)。 測(cè)試軟件: putty、 vmware 虛擬機(jī) (1) 在編寫(xiě) 完 TCP 服務(wù)端程序 后,用 gcc –lpthread –o server 生成程序 server。 (2) 在編寫(xiě)完 TCP 客戶端程序 后,用 gcc –lpthread –o client 生成程序 client (3) 在主機(jī)上打開(kāi)一窗口,運(yùn)行 server。 (4) 再打開(kāi)另一個(gè)窗口或者在另一個(gè)主機(jī)上打開(kāi)一個(gè)窗口,運(yùn)行 client,輸入服務(wù)器的 IP 地址,并檢查器結(jié)果的正確性。 輸入: 【主】 ./server 【從】 ./client ( 為本機(jī)的 ip 地址) 輸出: 【主】 server:got connection from (5) 客戶端、服務(wù)器端窗口之間以及交錯(cuò)發(fā)送信息的方式相互發(fā)送和接收信息。 1) 客戶端、服務(wù)器端窗皆通過(guò)鍵盤(pán)輸入消息內(nèi)容平回車(chē),以發(fā)送消息給對(duì)方; 2) 消息中若使用空格,則作為本條消息結(jié) 束及下一條消息的開(kāi)始; 3) 輸入 exit 則推出運(yùn)行。 開(kāi)始運(yùn)行后,服務(wù)器端窗口的執(zhí)行順序?yàn)椋? 1) 鍵入 ―Hello,world! ‖發(fā)送給客戶端 2) 接收客戶端發(fā)來(lái)的兩個(gè)消息; 3) 鍵入“ OK!‖發(fā)送個(gè)客戶端; 4) 輸入 exit 結(jié)束。 服務(wù)器端運(yùn)行結(jié)果如實(shí)驗(yàn)圖 41 所示。 圖 41 服務(wù)器端窗口 開(kāi)始運(yùn)行后,客戶端窗口的執(zhí)行順序?yàn)椋? 1) 接收服務(wù)器端發(fā)來(lái)的消息“ Hello,world!‖。 2) 發(fā)送消息“ hello!“和” Good!‖給服務(wù)器端; 3) 接收服務(wù)器發(fā)來(lái)的消息“ OK!‖。 4) 鍵入 exit 結(jié)束。 客戶端運(yùn)行結(jié)果如實(shí)驗(yàn)圖 42 所示。 圖 42 客戶端窗口 上述運(yùn)行結(jié)果表明,客戶端與服務(wù)器端之間傳遞的消息已被對(duì)方成功接收。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1