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

正文內(nèi)容

linux教程網(wǎng)絡(luò)高級編程(編輯修改稿)

2025-06-16 22:31 本頁面
 

【文章內(nèi)容簡介】 知我們的應(yīng)用程序。 ? 當(dāng)我們進行一個 IO操作的時候,我們傳遞給內(nèi)核我們的文件描述符,我們的緩存區(qū)指針和緩存區(qū)的大小,一個偏移量 offset,以及在內(nèi)核結(jié)束所有操作后和我們聯(lián)系的方法。這種調(diào)用也是立即返回的,我們的程序不需要阻塞住來等待數(shù)據(jù)的就緒。我們可以要求系統(tǒng)內(nèi)核在所有的操作結(jié)束后(包括從網(wǎng)絡(luò)上讀取信息,然后拷貝到我們提供給內(nèi)核的緩存區(qū)中)給我們發(fā)一個消息。 socket編程 socket() 函數(shù) ? include sys/ ? include sys/ ? int socket( int domain , int type , int protocol) 。 ? domain需要被設(shè)置為 “ AF_INET” ? type參數(shù)告訴內(nèi)核這個 socket是什么類型, “ SOCK_STREAM”或是 “ SOCK_DGRAM”。 ? 把 protocol設(shè)置為 0 。 ? 套接字創(chuàng)建時沒有指定名字.客戶機用套接字的名字讀寫它。socket()函數(shù)只是簡單的返回一個你以后可以使用的套接字描述符。如果發(fā)生錯誤, socket()函數(shù)返回 –1 。全局變量 errno將被設(shè)置為錯誤代碼。 bind() 函數(shù) ? include sys/ ? include sys/ ? int bind (int sockfd , struct sockaddr *my_addr , int addrlen) 。 ? 參數(shù)說明: ? sockfd是由 socket()函數(shù)返回的套接字描述符。 ? my_addr是一個指向 struct sockaddr的指針。 ? addrlen可以設(shè)置為 sizeof(struct sockaddr)。 ? bind()函數(shù)可以幫助你指定一個套接字使用的端口。 ? 當(dāng)你需要進行端口監(jiān)聽 listen()操作,等待接受一個連入請求的時候,一般都需要經(jīng)過這一步。如果你只是想進行連接一臺服務(wù)器,也就是進行 connect() 操作的時候,這一步并不是必須的。 ? bind()函數(shù)調(diào)用錯誤的時候,返回 –1作為錯誤發(fā)生的標志。errno的值為錯誤代碼。 connect()函數(shù) ? include sys/ ? include sys/ ? int connect (int sockfd, struct sockaddr *serv_addr, int addrlen)。 ? sockfd :套接字文件描述符,由 socket()函數(shù)返回的。 ? serv_addr是一個存儲遠程計算機的 IP地址和端口信息的結(jié)構(gòu)。 ? addrlen應(yīng)該是 sizeof(struct sockaddr)。 ? 一定要檢測 connect()的返回值:如果發(fā)生了錯誤(比如無法連接到遠程主機,或是遠程主機的指定端口無法進行連接等)它將會返回錯誤值 –1 。全局變量 errno將會存儲錯誤代碼。 listen() 函數(shù) ? include sys/ ? int listen(int sockfd, int backlog)。 ? sockfd是一個套接字描述符,由 socket()系統(tǒng)調(diào)用獲得。 ? backlog是未經(jīng)過處理的連接請求隊列可以容納的最大數(shù)目。 每一個連入請求都要進入一個連入請求隊列,等待 listen的程序調(diào)用 accept()函數(shù)來接受這個連接。當(dāng)系統(tǒng)還沒有調(diào)用 accept()函數(shù)的時候,如果有很多連接,那么本地能夠等待的最大數(shù)目就是 backlog的數(shù)值。 ? listen()如果返回 –1 ,那么說明在 listen()的執(zhí)行過程中發(fā)生了錯誤。全局變量 errno中存儲了錯誤代碼。 ? 在 listen()函數(shù)調(diào)用之前,需要使用 bind() 函數(shù)來指定使用本地的哪一個端口數(shù)值。 ? 如果你想在一個端口上接受外來的連接請求的話,那么函數(shù)的調(diào)用順序為: ? socket() 。 ? bind() 。 ? listen() 。 ? /* 在這里調(diào)用 accept()函數(shù) */ accept()函數(shù) ? include sys/ ? int accept(int sockfd, void *addr, int *addrlen)。 ? sockfd是正在 listen() 的一個套接字描述符。 ? addr一般是一個指向 struct sockaddr_in結(jié)構(gòu)的指針;里面存儲著遠程連接過來的計算機的信息(比如遠程計算機的 IP地址和端口)。 ? addrlen是一個本地的整型數(shù)值,在它的地址傳給 accept()前它的值應(yīng)該是 sizeof(struct sockaddr_in); accept()不會在 addr中存儲多余 addrlen bytes大小的數(shù)據(jù)。如果 accept(
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1