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

正文內(nèi)容

lab8-socket編程原理(完整版)

  

【正文】 等 待 客 戶 連 接 請(qǐng) 求 的 到 來服 務(wù) 器 端 客 戶 端無連接的 C/S程序工作流程 (UDP) ?無連接的數(shù)據(jù)報(bào)傳輸服務(wù)通信時(shí),客戶端與服務(wù)器端所使用的函數(shù)是類似的,其工作流程如下: ? 使用 WSAStartup()函數(shù)檢查系統(tǒng)協(xié)議棧的安裝情況 ? 使用 socket()函數(shù)創(chuàng)建套接口,以確定協(xié)議類型 ? 調(diào)用 bind()函數(shù)將創(chuàng)建的套接口與本地地址綁定,確定本地地址和本地端口號(hào) ? 使用 sendto()函數(shù)發(fā)送數(shù)據(jù),或者使用 recvfrom()函數(shù)接收數(shù)據(jù) ? 使用 closesocket()函數(shù)關(guān)閉套接口 ? 調(diào)用 WSACleanup()函數(shù),結(jié)束 Windows Sockets API 無連接的 C/S程序工作流程 (UDP) ?注意事項(xiàng): ? 通信的一方可以不用 bind()綁定地址和端口,由系統(tǒng)分配 ? 不綁定 IP地址和端口號(hào)的一方必須首先向綁定地址的一方發(fā)送數(shù)據(jù) ? 無連接的應(yīng)用程序也可以調(diào)用 connect()函數(shù),但是它并不向?qū)Ψ桨l(fā)出建立連接的請(qǐng)求,而是在本地返回,由內(nèi)核將connect()中指定的目標(biāo) IP地址和端口號(hào)記錄下來,在以后的通信中就可以使用面向連接的數(shù)據(jù)發(fā)送函數(shù) send()和數(shù)據(jù)接收函數(shù) recv() ? 無連接的數(shù)據(jù)報(bào)傳輸過程中,作為服務(wù)器的一方必須先啟動(dòng) ? 無連接客戶端一般不調(diào)用 connect(),在數(shù)據(jù)發(fā)送前客戶與服務(wù)器各自通過 socket()和 bind()建立了半相關(guān),發(fā)送數(shù)據(jù)時(shí)除指定本地套接口的地址外,還需要指定接收方套接口地址,從而在數(shù)據(jù)收發(fā)過程中動(dòng)態(tài)建立全連接 無連接的 C/S程序工作流程圖 (UDP) W S A S t a r t u p ( )交 換 數(shù) 據(jù)s o c k e t ( )b i n d ( )r e c v f r o m ( )s e n d t o ( )c l o s e s o c k e t ( )W S A C l e a n u p ( )W S A S t a r t u p ( )s o c k e t ( )b i n d ( )s e n d t o ( )c l o s e s o c k e t ( )W S A C l e a n u p ( )r e c v f r o m ( )交 換 數(shù) 據(jù)服 務(wù) 器 客 戶 端阻塞通信與非阻塞通信 ?阻塞方式:套接字進(jìn)行 I/O操作時(shí),函數(shù)要等待到相關(guān)的操作完成以后才能返回,對(duì)提高處理機(jī)的利用率不利,但編程簡(jiǎn)單。SOCKET編程原理 內(nèi)容 ?Socket簡(jiǎn)介 ? Windows Socket ? Linux Socket ?Socket常用函數(shù)介紹 ?TCP/IP網(wǎng)絡(luò)程序框架與實(shí)例 ?通信方式 ? 阻塞 ? 非阻塞 為什么需要 Socket ?普通的 I/O操作過程 ? 打開文件->讀 /寫操作->關(guān)閉文件 ?TCP/IP協(xié)議被集成到操作系統(tǒng)的內(nèi)核中,引入了新型的“ I/O”操作 ? 進(jìn)行網(wǎng)絡(luò)操作的兩個(gè)進(jìn)程在不同的機(jī)器上,如何連接? ? 網(wǎng)絡(luò)協(xié)議具有多樣性,如何進(jìn)行統(tǒng)一的操作 ? ?需要一種 通用 的網(wǎng)絡(luò)編程接口: Socket ? 獨(dú)立于具體協(xié)議 ? BSD Socket(伯克利套接字)是通過標(biāo)準(zhǔn)的 UNIX文件描述符和其它程序通訊的一個(gè)方法,目前已經(jīng)被廣泛移植到各個(gè)平臺(tái)。 ?非阻塞方式:套接字進(jìn)行 I/O操作時(shí),無論操作成功與否,調(diào)用都會(huì)立即返回。 if(WSAStartup(wVersionRequested,amp。Winsock還支持其他協(xié)議,但一般很少使用。 sockaddr_in tcpaddr。tcpaddr,sizeof(tcpaddr))==SOCKET_ERROR){ iSockErr=WSAGetLastError()。如果調(diào)用該函數(shù)前沒有調(diào)用 bind()來綁定本地地址,則由系統(tǒng)隱式綁定一個(gè)地址到該套接口 ? 該函數(shù)用在 UDP的客戶端時(shí), connect()函數(shù)并不是真正地發(fā)出建立請(qǐng)求連接的請(qǐng)求,調(diào)用將從本地操作系統(tǒng)直接返回。 MSG_PEEK表示會(huì)使有用的數(shù)據(jù)復(fù)制到所提供的接收端緩沖區(qū)內(nèi),但是沒有從系統(tǒng)緩沖區(qū)中將數(shù)據(jù)刪除。 shutdown()函數(shù)參數(shù)說明 ? s標(biāo)識(shí)一個(gè)套接口的描述字 ? how是一個(gè)標(biāo)志,用于描述禁止哪些操作,取值如下表所示 關(guān)閉方式 參數(shù)值 說 明 SD_RECEIVE 0 表示不允許再調(diào)用接收函數(shù),它關(guān)閉讀通道。 int WSACleanup(void)。在一個(gè)多線程的環(huán)境下, WSACleanup()函數(shù)中止了 Windows Sockets在所有線程上的操作 高級(jí)網(wǎng)絡(luò)編程 API ?MFC編程技術(shù)定義了用于網(wǎng)絡(luò)編程的Winsock類,類名為 CAsyncSocket;還定義了一個(gè)派生于 CAsyncSocket的 CSocket類。在套接口發(fā)送緩沖區(qū)中的數(shù)據(jù)都被發(fā)送出去,得到接收端確認(rèn)之后,就生成一個(gè) FIN包關(guān)閉連接。 無連接的套接口上接收數(shù)據(jù) recvfrom() ? 對(duì)于無連接的套接口來說,要從套接口上接收一個(gè)數(shù)據(jù)報(bào)并保存發(fā)送數(shù)據(jù)的源地址,就要使用 recvfrom()函數(shù)。 SOCKET accept( SOCKET s, struct sockaddr FAR * addr, int FAR * addrlen
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1