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

正文內(nèi)容

課程設(shè)計(jì)論文-基于linux網(wǎng)絡(luò)聊天室的設(shè)計(jì)(編輯修改稿)

2024-09-07 05:50 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 通信協(xié)議,可以取SOCK_STREAM或SOCK_DGRAM。其中,SOCK_STREAM表明使用的是TCP協(xié)議,這樣提供按順序、可靠、雙向、面向連接的比特流;SOCKE_DGRAM表明使用的是UDP協(xié)議,這樣只會(huì)提供定長(zhǎng)、不可靠、無(wú)連接的通信。(2)bind( )格式: int bind(int sockfd,struct sockaddr *addr,int addrlen)。 參數(shù)說(shuō)明: Sockfd:socket的文件描述符號(hào)。 Sockaddr:表示名字所用的一個(gè)數(shù)據(jù)結(jié)構(gòu),用來(lái)保存地址(包括IP地址和端口) Addrlen:設(shè)置結(jié)構(gòu)大小長(zhǎng)度。(3)listen()格式: int listen(int sockfd, int backlog)。 作用:監(jiān)聽(tīng)連接信號(hào),和accepted函數(shù)合同。 參數(shù)說(shuō)明: Sockfd:表示socket調(diào)用返回的文件描述符。 Backlog:表示接入隊(duì)列允許的連接數(shù)目,大多數(shù)系統(tǒng)允許20個(gè),也可以子定義5~10個(gè)。(4)accept() 格式: Int accept (int sockfd, void *addr, int *addrlen)。 作用:與listen函數(shù)合用,監(jiān)聽(tīng)信息、接收客戶(hù)端請(qǐng)求。 參數(shù)說(shuō)明: Sockfd:表示socket的文件描述符。 Addr:表示指向局部的數(shù)據(jù)結(jié)構(gòu)struct sockaddrin的指針。 Addrlen:表示地址的長(zhǎng)度。(5)connect()格式: int connect( int sockfd , struct sockaddr *serv_addr , int addrlen)。 作用:在面向連接的系統(tǒng)中客戶(hù)及連接服務(wù)器時(shí)使用,connect必須在bind后使用。 參數(shù)作用: Sockfd:表示socket的文件描述符。 Servaddr:表示村訪目的端口和ip地址(套接字)的數(shù)據(jù)結(jié)構(gòu)。(6)send() 和 recv() 格式1: Int send (int sockfd, const vod *msg,int len, int flags)。 功能:發(fā)送信息。 格式2: Int recv (int sockfd , void *buf,int len, usigned int flags)。 作用:用于流式socket、數(shù)據(jù)報(bào)socket內(nèi)部之間的通信。(7)close( ) 和 shutdown ( )格式: Close( int sockfd)或 Int shutdown(int sockfd , int how)。 參數(shù)說(shuō)明: How的值為下面一種: 0不允許繼續(xù)接收; 1不允許繼續(xù)發(fā)送; 2不允許繼續(xù)發(fā)送和接收。(8)有關(guān)線程的系統(tǒng)調(diào)用函數(shù)pthread_create()、pthread_join() 系統(tǒng)實(shí)現(xiàn)過(guò)程說(shuō)明(1) 監(jiān)聽(tīng)連接 利用socket、bind、listen建立連接,步驟是:1) 先用socket函數(shù)初始化socket,創(chuàng)建新的sockfd。Sockfd = socket(AF_INT,SOCK_STREAM,0)2) 此步驟涉及到IP地址及其處理過(guò)程。參數(shù)說(shuō)明: inet_addr 函數(shù) INADDR_ANY該函數(shù)把由小數(shù)點(diǎn)分開(kāi)的十進(jìn)制IP地址轉(zhuǎn)為unsinged long 類(lèi)型,而在實(shí)驗(yàn)中所使用的為INADDR_ANY,使用利用自已的IP地址自動(dòng)填充。1)利用bind函數(shù)綁定端口和IP地址。=AF_INET。 /*將地址族類(lèi)型設(shè)定好 */=htons(MYPORT。 /* 將端口給其賦值*/=INADDR_ANY。 /*用連接地址自動(dòng)填充ip*/Bind(sockfd,(stuct sockaddr*)amp。my_addr,sizeof(stuct sockaddr))。/*sockfd 是分配的socket名字,myaddr則便是分配好的端口與IP,用bind綁定*/2)利用listen監(jiān)聽(tīng)請(qǐng)求(2) 發(fā)送請(qǐng)求1)利用gethostbyname獲取主機(jī)信息。2)初始化socket端口。3)利用connect函數(shù)將自己的IP地址等信息發(fā)送到主機(jī),等待主機(jī)調(diào)用accept函數(shù)來(lái)接受請(qǐng)求。(3) 主機(jī)接收請(qǐng)求,進(jìn)行數(shù)據(jù)通信1)主機(jī)利用accept接收請(qǐng)求。2)創(chuàng)建子進(jìn)程,顯示歡迎信息;3)接收返回信息,顯示連接成功,并推出連接;4)關(guān)閉客戶(hù)端口socket;5)關(guān)閉服務(wù)端socket,結(jié)束子線程。5 運(yùn)行效果(1),用 gcc –lpthread –o server 生成程序server。(2),用gcc –lpthread –o client 生成程序client(3)在主機(jī)上打開(kāi)一窗口,運(yùn)行server。(4)再打開(kāi)另一個(gè)窗口或者在另一個(gè)主句上打開(kāi)一個(gè)窗口,運(yùn)行client,輸入服務(wù)器的IP地址,并檢查器結(jié)果的正確性。輸入:【主】 ./server【從】 ./client 輸出:【主】server:got connection from (5)客戶(hù)端、服務(wù)器端窗口之間以及交錯(cuò)發(fā)送信息的方式相互發(fā)送和接收信息。1) 客戶(hù)端、服務(wù)器端窗皆通過(guò)鍵盤(pán)輸入消息內(nèi)容平回車(chē),以發(fā)送消息給對(duì)方;2) 消息中若使用空格,則作為本條消息
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1