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

正文內(nèi)容

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

2025-07-15 17:06 本頁面
 

【文章內(nèi)容簡介】 e()。首先運(yùn)行服務(wù)器端程序,通過Socket()函數(shù)會(huì)建立一個(gè)套接字,然后通過Bind()函數(shù)綁定一個(gè)端口,然后調(diào)用Listen()在套接字指定的端口上開始傾聽,利用Accept()從完全建立連接的隊(duì)列中接受一個(gè)連接,連接獲得后使用Read()和Write()函數(shù)進(jìn)行通信。通信結(jié)束后調(diào)用Close()關(guān)閉套接字描述符。運(yùn)行客戶端的程序,調(diào)用Socket()函數(shù)建立一個(gè)套接字,使用Connect()函數(shù)與服務(wù)器端進(jìn)行連接,連接完成后,使用Write()和Read()與服務(wù)器端進(jìn)行通信,通信結(jié)束后調(diào)用close()關(guān)閉套接字描述符。4系統(tǒng)實(shí)現(xiàn)(1)Socket() 作用:socket函數(shù)為客戶機(jī)或服務(wù)器創(chuàng)建一個(gè)sokcet格式:int socket(int family,int type,int protocol)。 參數(shù)說明: Family:表示地址族,可以去AF_UNLX和AF_INT。其中,AF_UNLX只能夠用于單一的UNIX系統(tǒng)進(jìn)程間通信。AF_INT是針對(duì)Internet的,因而可以允許在遠(yuǎn)程主機(jī)之間通信,實(shí)驗(yàn)中使用AF_INT。Type:網(wǎng)絡(luò)程序所采用的通信協(xié)議,可以取SOCK_STREAM或SOCK_DGRAM。其中,SOCK_STREAM表明使用的是TCP協(xié)議,這樣提供按順序、可靠、雙向、面向連接的比特流;SOCKE_DGRAM表明使用的是UDP協(xié)議,這樣只會(huì)提供定長、不可靠、無連接的通信。(2)bind( )格式: int bind(int sockfd,struct sockaddr *addr,int addrlen)。 參數(shù)說明: Sockfd:socket的文件描述符號(hào)。 Sockaddr:表示名字所用的一個(gè)數(shù)據(jù)結(jié)構(gòu),用來保存地址(包括IP地址和端口) Addrlen:設(shè)置結(jié)構(gòu)大小長度。(3)listen()格式: int listen(int sockfd, int backlog)。 作用:監(jiān)聽連接信號(hào),和accepted函數(shù)合同。 參數(shù)說明: 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)聽信息、接收客戶端請(qǐng)求。 參數(shù)說明: Sockfd:表示socket的文件描述符。 Addr:表示指向局部的數(shù)據(jù)結(jié)構(gòu)struct sockaddrin的指針。 Addrlen:表示地址的長度。(5)connect()格式: int connect( int sockfd , struct sockaddr *serv_addr , int addrlen)。 作用:在面向連接的系統(tǒng)中客戶及連接服務(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ù)說明: 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)過程說明(1) 監(jiān)聽連接 利用socket、bind、listen建立連接,步驟是:1) 先用socket函數(shù)初始化socket,創(chuàng)建新的sockfd。Sockfd = socket(AF_INT,SOCK_STREAM,0)2) 此步驟涉及到IP地址及其處理過程。參數(shù)說明: inet_addr 函數(shù) INADDR_ANY該函數(shù)把由小數(shù)點(diǎn)分開的十進(jìn)制IP地址轉(zhuǎn)為unsinged long 類型,而在實(shí)驗(yàn)中所使用的為INADDR_ANY,使用利用自已的IP地址自動(dòng)填充。1)利用bind函數(shù)綁定端口和IP地址。=AF_INET。 /*將地址族類型設(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)聽請(qǐng)求(2) 發(fā)送請(qǐng)求1)利用gethostbyname獲取主機(jī)信息。2)初始化socket端口。3)利用connect函數(shù)將自己的IP地址等信息發(fā)送到主機(jī),等待主機(jī)調(diào)用accept函數(shù)來接受請(qǐng)求。(3) 主機(jī)接收請(qǐng)求,進(jìn)行數(shù)據(jù)通信1)主機(jī)利用accept接收請(qǐng)求。2)創(chuàng)建子進(jìn)程,顯示歡迎信息;3)接收返回信息,顯示連接成功,并推出連接;4)關(guān)閉客戶端口socket;5)關(guān)閉服務(wù)端socket,結(jié)束子線程。5 運(yùn)行效果(
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1