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

正文內(nèi)容

lab8-socket編程原理(留存版)

2025-09-19 00:46上一頁面

下一頁面
  

【正文】 ? 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)。 wVersionRequested=MAKEWORD(2,2)。 } sin_family一般為 AF_INET,表示使用 IP地址族; sin_port是以網(wǎng)絡(luò)字節(jié)序表示的 16位端口號(hào); sin_addr是網(wǎng)絡(luò)字節(jié)序的 32位 IP地址; sin_zero字段一般不用,用 0填充 ? namelen表示地址參數(shù) (name)的長(zhǎng)度 ? IP地址參數(shù)為 INADDR_ANY,則由系統(tǒng)內(nèi)核來自動(dòng)指定 ? port為 0,則由系統(tǒng)自動(dòng)指派一個(gè) 1024~5000之間惟一的端口號(hào) bind()實(shí)例 include SOCKET s。 connect()函數(shù)參數(shù)說明 ?s將要建立連接的套接口描述字 ?name是一個(gè)指向遠(yuǎn)端套接口地址結(jié)構(gòu)(sockaddr_in)的指針,表示 s套接口欲與其建立一條連接 ?namelen是服務(wù)器端的地址長(zhǎng)度,即 name的長(zhǎng)度 Connect()函數(shù)的說明 ? 在客戶端使用該函數(shù)請(qǐng)求建立連接時(shí),將激活建立連接的三次握手,用來建立一條到服務(wù)器 TCP的連接。當(dāng)然在有連接的情況下很少使用該函數(shù) 關(guān)閉讀寫通道 shutdown()函數(shù) ?在一個(gè)套接口上的讀寫操作完成后,應(yīng)該首先使用 shutdown()函數(shù)來關(guān)閉套接口的讀通道、寫通道或讀寫通道,這樣做的好處是當(dāng)雙方不再有數(shù)據(jù)要發(fā)送或接收時(shí),可以通知對(duì)方,以防止數(shù)據(jù)丟失,并能“優(yōu)雅”地關(guān)閉連接 int shutdown( SOCKET s, int how )。這兩個(gè)類簡(jiǎn)單實(shí)用,用戶可以使用它們來實(shí)現(xiàn)自己的網(wǎng)絡(luò)程序。 int recvfrom( SOCKET s, char FAR * buf, int len, int flags, struct sockaddr FAR * from, int FAR * fromlen )。 服務(wù)器端啟動(dòng)監(jiān)聽- listen()函數(shù) ? 在一個(gè)服務(wù)器端用 socket()調(diào)用成功創(chuàng)建了一個(gè)套接口,并用 bind()函數(shù)和一個(gè)指定的地址關(guān)聯(lián)后,就需要指示該套接口進(jìn)入監(jiān)聽連接請(qǐng)求狀態(tài),這需要通過listen()函數(shù)來實(shí)現(xiàn) int listen( SOCKET s, int backlog )。 bind()參數(shù)說明 ? s標(biāo)識(shí)一個(gè)未綁定的套接口描述字,它是 socket()函數(shù)調(diào)用成功時(shí)返回的值 ? name是一個(gè)與指定協(xié)議有關(guān)的地址結(jié)構(gòu)指針,存儲(chǔ)了套接口的地址信息, Winsock中使用 sockaddr_in結(jié)構(gòu)指定 IP地址和端口信息 struct sockaddr_in{ short sin_family。 ?如果使用 Visual C++ ,可以通過“工程” “設(shè)置” “工程設(shè)置” “鏈接” “對(duì)象 /庫模塊”中加入“ ” Windows Socket的啟動(dòng) ? 使用 Winsock API編制的網(wǎng)絡(luò)應(yīng)用程序中,在調(diào)用任何一個(gè) Winsock函數(shù)之前都必須檢查協(xié)議棧安裝情況,使用函數(shù) WSAStartup()完成操作。 ?數(shù)據(jù)報(bào)套接字 (SOCK_DGRAM) ? 提供無連接服務(wù)。 }//說明 WinsockDLL正確加載,可以執(zhí)行以下代碼 創(chuàng)建套接口 socket() ? 應(yīng)用程序在使用套接口通信前,必須要擁有一個(gè)套接口,使用 socket()函數(shù)來給應(yīng)用程序創(chuàng)建一個(gè)套接口。 =AF_INET。 send()函數(shù)參數(shù)說明 ? s用于標(biāo)識(shí)已建立連接的套接字 ? buf是一個(gè)字符緩沖區(qū),內(nèi)有將要發(fā)送的數(shù)據(jù) ? len即將發(fā)送的緩沖區(qū)中的字符數(shù) ? flags用于控制數(shù)據(jù)傳輸方式, 0表示按正常方式發(fā)送數(shù)據(jù);宏 MSG_DONTROUTE說明系統(tǒng)目標(biāo)主機(jī)就在直接連接的本地網(wǎng)絡(luò)中,無需路由選擇; MSG_OOB指出數(shù)據(jù)是按帶外數(shù)據(jù)發(fā)送的 ? 函數(shù)說明 : send()函數(shù)適用于已建立連接的數(shù)據(jù)報(bào)或流式套接口發(fā)送數(shù)據(jù),對(duì)于數(shù)據(jù)報(bào)類型套接口必須注意發(fā)送數(shù)據(jù)長(zhǎng)度不大于通信子網(wǎng)的 IP包最大長(zhǎng)度 接收數(shù)據(jù)- recv()函數(shù) ?對(duì)于已建立連接的套接口來說,要從套接口上接收數(shù)據(jù),就要使用 recv()函數(shù)。 ?一個(gè)套接口不再使用時(shí)一定要關(guān)閉這個(gè)套接口,以釋放與該套接口關(guān)聯(lián)的所有資源,包括等候處理的數(shù)據(jù)。 ?參數(shù) s表示即將被關(guān)閉的套接口 IP地址轉(zhuǎn)換函數(shù) ?char * i_ntoa ( struct in_addr in ) in為傳入?yún)?shù),表示一個(gè)結(jié)構(gòu)型的 IP主機(jī)地址,該函數(shù)將一個(gè) 32位數(shù)字表示的 IP地址轉(zhuǎn)換成點(diǎn)分十進(jìn)制 IP地址字符串
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1