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

正文內(nèi)容

基于linux網(wǎng)絡(luò)聊天室的設(shè)計_畢業(yè)設(shè)計論文-閱讀頁

2024-09-16 15:24本頁面
  

【正文】 ) 和 shutdown ( ) 格式: Close( int sockfd) 或 Int shutdown(int sockfd , int how)。 (8) 有關(guān)線程的系統(tǒng)調(diào)用函數(shù) pthread_create()、 pthread_join() 實(shí)驗(yàn)過程說明(使用 TCP/IP) (1) 監(jiān)聽連接 利用 socket、 bind、 listen 建立連接,步驟是: 1) 先用 socket 函數(shù)初始化 socket,創(chuàng)建新的 sockfd。 參數(shù)說明: i_addr 函數(shù) INADDR_ANY 該函數(shù)把由小數(shù)點(diǎn)分開的十進(jìn)制 IP 地址轉(zhuǎn)為 unsinged long 類型,而在實(shí)驗(yàn)中所使用的為 INADDR_ANY,使用利用自已的 IP 地址自動填充。 =AF_INET。 /* 將端口給其賦值 */ =INADDR_ANY。my_addr,sizeof(stuct sockaddr))。 2)初始化 socket 端口。 (3) 主機(jī)接收請求,進(jìn)行數(shù)據(jù)通信 1)主機(jī)利用 accept 接收請求。 TCP 通信實(shí)現(xiàn) (1) 服務(wù)端源程序清單如下,設(shè)文件名為 include include include include includesys/ includei/ includesys/ includesys/ include define MYPORT 3490 define BACKLOG 10 define MAXDATASIZE 1024 int sockfd,new_fd。 void recmessage(void){ while(1){ int numbytes。 if((numbytes = recv(new_fd,buf,MAXDATASIZE,0)) == 1){ perror(recv)。 } buf[numbytes] = 39。 if(strcmp(buf,exit) == 0){ printf(Client is closed\n)。 close(sockfd)。 } printf(Client:%s\n,buf)。 int sin_size。 if((new_fd = accept(sockfd,(struct sockaddr*)amp。sin_size)) == 1){ perror(accept)。 } printf(server:got connection from %s\n,i_ntoa())。recthread,NULL,(void *)recmessage,NULL))!= 0){ printf(Create thread error!\r\n)。 } } int main(void){ struct sockaddr_in my_addr。 exit(1)。 = htons(MYPORT)。 bzero(amp。 if(bind(sockfd,(struct sockaddr*)amp。 exit(1)。 exit(1)。accthread,NULL,(void *)acceptconnect,NULL)) != 0){ printf(Create thread error!\r\n)。 } while(1){ char msg[MAXDATASIZE]。 if(send(new_fd,msg,strlen(msg),0) == 1){ perror(send)。 exit(1)。 close(new_fd)。 exit(1)。 } (2) 客戶端源程序清單如下,設(shè)文件名為 include include include include include includesys/ includei/ includesys/ include define PORT 3490 define MAXDATASIZE 1024 int sockfd。 void recmessage(void){ while(1){ int numbytes。 if((numbytes = recv(sockfd,buf,MAXDATASIZE,0)) == 1){ perror(recv)。 } buf[numbytes]=39。 if(strcmp(buf,exit) == 0){ printf(Server is closed\n)。 exit(1)。 } } int main(int argc,char *argv[]){ struct hostent *he。 if(argc != 2){ fprintf(stderr,usage:client hostname\n)。 } if((he=gethostbyname(argv[1])) == NULL){ herror(gethostbyname)。 } if((sockfd = socket(AF_INET,SOCK_STREAM,0)) == 1){ perror(socket)。 } = AF_INET。 = *((struct in_addr *)heh_addr)。(),8)。their_addr,sizeof(struct sockaddr)) == 1){ perror(connect)。 } if((pthread_create(amp。 exit(1)。 scanf(%s,msg)。 close(sockfd)。 } if(strcmp(msg,exit) == 0){ printf(Byebye!\n)。 exit(1)。 } 4 運(yùn)行效果 程序測試環(huán)境: linux、 unix、 debian 等操作系統(tǒng)。 (2) 在編寫完 TCP 客戶端程序 后,用 gcc –lpthread –o client 生成程序 client (3) 在主機(jī)上打開一窗口,運(yùn)行 server。 輸入: 【主】 ./server 【從】 ./client ( 為本機(jī)的 ip 地址) 輸出: 【主】 server:got connection from (5) 客戶端、服務(wù)器端窗口之間以及交錯發(fā)送信息的方式相互發(fā)送和接收信息。 開始運(yùn)行后,服務(wù)器端窗口的執(zhí)行順序?yàn)椋? 1) 鍵入 ―Hello,world! ‖發(fā)送給客戶端 2) 接收客戶端發(fā)來的兩個消息; 3) 鍵入“ OK!‖發(fā)送個客戶端; 4) 輸入 exit 結(jié)束。 圖 41 服務(wù)器端窗口 開始運(yùn)行后,客戶端窗口的執(zhí)行順序?yàn)椋? 1) 接收服務(wù)器端發(fā)來的消息“ Hello,world!‖。 4) 鍵入 exit 結(jié)束。 圖 42 客戶端窗口 上述運(yùn)行結(jié)果表明,客戶端與服務(wù)器端之間傳遞的消息已被對方成功接收
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1