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