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

正文內(nèi)容

tcp-ipsocket網(wǎng)絡(luò)編程-文庫吧資料

2025-01-25 08:36本頁面
  

【正文】 指向接收數(shù)據(jù)的目的套接口地址 ? tolen是 to所指的地址的長度 ? 函數(shù)說明 :該函數(shù)的使用方法類似 send()函數(shù),當(dāng)用于無連接套接字接口,調(diào)用函數(shù)前要設(shè)置,指出目標 IP地址和目標端口號。 int recvfrom( SOCKET s, char FAR * buf, int len, int flags, struct sockaddr FAR * from, int FAR * fromlen )。MSG_OOB表示處理帶外數(shù)據(jù)。 0表示接收的是正常數(shù)據(jù),無特殊行為。 int recv( SOCKET s, char FAR * buf, int len, int flags )。 2022/2/14 TCP/IP Socket網(wǎng)絡(luò)編程 49/83 accept()函數(shù)參數(shù)說明 ? s標識一個套接字,該套接口處于監(jiān)聽狀態(tài) ? addr是一個地址結(jié)構(gòu)的指針,用來存放發(fā)出連接請求的那個客戶機的 IP地址信息 ? addrlen指出客戶套接口地址結(jié)構(gòu)的長度 ? 函數(shù)說明 :該函數(shù)用于面向連接的服務(wù)器端,在 IP協(xié)議族中,只用于 TCP服務(wù)器端 2022/2/14 TCP/IP Socket網(wǎng)絡(luò)編程 50/83 發(fā)送數(shù)據(jù) send()函數(shù) ? 在已經(jīng)建立連接的套接口上發(fā)送數(shù)據(jù),可以使用 send()函數(shù) int send( SOCKET s, const char FAR * buf, int len, int flags )。這樣可以將服務(wù)器的地址信息保存下來,在后續(xù) UDP端口發(fā)送數(shù)據(jù)時,由套接口自動在發(fā)送函數(shù)中填入服務(wù)器地址,而不需要由應(yīng)用程序在調(diào)用發(fā)送函數(shù)時填入 2022/2/14 TCP/IP Socket網(wǎng)絡(luò)編程 48/83 服務(wù)器端接受連接- accept()函數(shù) ? 在服務(wù)器端通過 listen()函數(shù)調(diào)用表示服務(wù)器進入監(jiān)聽客戶的連接請求狀態(tài),而在服務(wù)器端調(diào)用 accept()函數(shù)時表示可以接收來自客戶端由 connect()發(fā)出的連接請求,雙方進入連接狀態(tài)。 2022/2/14 TCP/IP Socket網(wǎng)絡(luò)編程 46/83 connect()函數(shù)參數(shù)說明 ? s將要建立連接的套接口描述字 ? name是一個指向遠端套接口地址結(jié)構(gòu)(sockaddr_in)的指針,表示 s套接口欲與其建立一條連接 ? namelen是服務(wù)器端的地址長度,即 name的長度 2022/2/14 TCP/IP Socket網(wǎng)絡(luò)編程 47/83 Connect()函數(shù)的說明 ? 在客戶端使用該函數(shù)請求建立連接時,將激活建立連接的三次握手,用來建立一條到服務(wù)器 TCP的連接。在客戶端套接口建立好之后,就調(diào)用 connect()函數(shù)來與服務(wù)器建立連接。 2022/2/14 TCP/IP Socket網(wǎng)絡(luò)編程 44/83 服務(wù)器端啟動監(jiān)聽- listen()函數(shù) ? 在一個服務(wù)器端用 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 )。 //根據(jù)不同的錯誤類型進行不同的處理 return。 if(bind(s,(LPSOCKADDR)amp。 =htons(port)。 //端口號 s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)。 int iSockErr。 } sin_family一般為 AF_INET,表示使用 IP地址族; sin_port是以網(wǎng)絡(luò)字節(jié)序表示的16位端口號; sin_addr是網(wǎng)絡(luò)字節(jié)序的 32位 IP地址; sin_zero字段一般不用,用 0填充 ? namelen表示地址參數(shù) (name)的長度 ? IP地址參數(shù)為 INADDR_ANY,則由系統(tǒng)內(nèi)核來自動指定,port為 0,則由系統(tǒng)自動指派一個 1024~5000之間惟一的端口號 2022/2/14 TCP/IP Socket網(wǎng)絡(luò)編程 43/83 bind()實例 include SOCKET s。 struct in_addr sin_addr。 2022/2/14 TCP/IP Socket網(wǎng)絡(luò)編程 42/83 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。 ? type參數(shù)描述套接口的類型, af是 AF_INET的時候只能為SOCK_STREAM、 SOCK_DGRAM或 SOCK_RAW ? protocol說明該套接口使用的特定協(xié)議,當(dāng)協(xié)議地址族 af和協(xié)議類型 type確定后,協(xié)議字段可以使用的值是限定的 協(xié)議 地址族 套接口類型 套接口類型使用 的值 協(xié)議字段 互聯(lián)網(wǎng)協(xié)議 (IP) AF_INET TCP SOCK_STREAM IPPROTO_TCP UDP SOCK_DGRAM IPPROTO_UDP Raw SOCK_RAW IPPROTO_RAW IPPROTO_ICMP 2022/2/14 TCP/IP Socket網(wǎng)絡(luò)編程 41/83 指定本地地址- bind() ? 當(dāng) socket()創(chuàng)建了一個套接口后,需要將該套接口與該主機上提供服務(wù)的某端口聯(lián)系在一起, bind()函數(shù)用于完成這樣的綁定。如果想建立一個 TCP或 UDP,只能用常量 AF_INET表示使用互聯(lián)網(wǎng)協(xié)議(IP)地址。 SOCKET socket( int af, int type, int protocol )。 return。wsaData)!=0) { //Winsock初始化錯誤 return。 wVersionRequested=MAKEWORD(2,2)。 wVersionRequested是一個 WORD型 (雙字節(jié)型 )數(shù)值,指定使用的版本號,對 ,此參數(shù)的值為0x0202,也可以用宏 MAKEWORD(2,2)來獲得 lpWSAData是一個指向 WSADATA結(jié)構(gòu)的指針,它返回關(guān)于Winsock實現(xiàn)的詳細信息 2022/2/14 TCP/IP Socket網(wǎng)絡(luò)編程 38/83 Winsock啟動示例 include WORD wVersionRequested。 ? 如果使用 Visual C++ ,可以通過“工程” “設(shè)置” “工程設(shè)置” “鏈接” “對象 /庫模塊”中加入“ ” 2022/2/14 TCP/IP Socket網(wǎng)絡(luò)編程 37/83 Windows Socket的啟動 ? 使用 Winsock API編制的網(wǎng)絡(luò)應(yīng)用程序中,在調(diào)用任何一個 Winsock函數(shù)之前都必須檢查協(xié)議棧安裝情況,使用函數(shù) WSAStartup()完成操作。 ? 原始套接字 (SOCK_RAW) – 可以對較低層次協(xié)議,如 IP、 ICMP直接訪問。 ? 數(shù)據(jù)報套接字 (SOCK_DGRAM) – 提供無連接服務(wù)。內(nèi)設(shè)置流量控制,避免數(shù)據(jù)流淹沒慢的接收方。 ? IP地址分級 ? 子網(wǎng)掩碼 2022/2/14 TCP/IP Socket網(wǎng)絡(luò)編程 16/83 端口號 ? 為了區(qū)分一臺主機接收到的數(shù)據(jù)包應(yīng)該遞交給哪個進程來進行處理,使用端口號 ? TCP端口號與 UDP端口號獨立 ? 端口號一般由 IANA (Inter Assigned Numbers Authority) 管理 – 眾所周知端口: 1~1023, 1~255之間為大部分眾所周知端口, 256~1023端口通常由 UNIX占用 – 注冊端口: 1024~49151 – 動態(tài)或私有端口: 49151~65535 2022/2/14 TCP/IP Socket網(wǎng)絡(luò)編程 17/83 端到端通信數(shù)據(jù)包投遞過程 應(yīng) 用 程 序 應(yīng) 用 程 序 應(yīng) 用 程 序 應(yīng) 用 程 序T C P U D PI C M PI P A R PR A R P以 太 網(wǎng) 網(wǎng) 絡(luò) 接 口 層以 太 網(wǎng)由 傳 輸 層 報 頭 中 的 端口 字 段 標 識由 I P 數(shù) 據(jù) 報 頭 中 的 上層 協(xié) 議 字 段 標 識由 以 太 網(wǎng) 幀 類 型 字 段標 識2022/2/14 TCP/IP Socket網(wǎng)絡(luò)編程 18/83 一個比喻 ? 如果把 IP數(shù)據(jù)包的投遞過程看成是給遠方的一位朋友寄一封信,那么 ? IP地址就是這位朋友的所在位置,如安徽合肥中國科大計算系(依靠此信息進行路由) ? 端口號就是這位朋友的名字(依靠這個信息最終把這封信交付給這位收信者) 2022/2/14 TCP/IP Socket網(wǎng)絡(luò)編程 19/83 字節(jié)序 ? 大尾端 (BigEndian):字節(jié)的高位在內(nèi)存中放在存儲單元的起始位置 ? 小尾端 (LittleEndian):與大尾端相反 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 0 0 00 0 0 0 1 0 1 01 0 0 1 0 1 1 10 0 0 0 1 1 1 11 0 0 0 1 0 0 0M e m o r yAA + 1A + 2A + 32022/2/14 TCP/IP Socket網(wǎng)絡(luò)編程 20/83 字節(jié)序 ? 網(wǎng)絡(luò)字節(jié)序( NBO, Network Byte Order) – 使用統(tǒng)一的字節(jié)順序,避免兼容性問題 ? 主機字節(jié)序( HBO, Host Byte Ord
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1