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

正文內(nèi)容

c_網(wǎng)絡編程---第六章__tcpudp編程-資料下載頁

2024-10-17 03:37本頁面
  

【正文】 ember(IPEndPoint rep)//離開組 { (rep)。 byte[] data = (OK)。 (data, , rep)。 } static void SendToMember(string buf)//組內(nèi)轉發(fā)數(shù)據(jù) { foreach (IPEndPoint mb in mblist) { byte[] data = (buf)。 (data, , mb)。 } } 第6章 TCP/UDP編程 38 .NET中的 UDP編程基礎 UdpClient類 static void Main(string[] args) { string m_hostIP = 。 int m_port = 6666。 IPEndPoint m_EndPoint。 ArrayList memberlist = new ArrayList( )。 bool rt = false。 byte[] data。 string m_ReturnData。 //從命令行提取主機 IP和端口 if ( 2) { (Usage: UDPServer hostIP port)。 } else { m_hostIP = args[0].ToString( )。 m_port = (args[1].ToString( ))。 rt = true。 } if (rt) { mblist = new ArrayList( )。//組成員列表 IPAddress m_ipA = (m_hostIP)。 m_EndPoint = new IPEndPoint(m_ipA,m_port)。 m_server = new UdpClient(m_EndPoint)。 (Ready for Connect......)。 第6章 TCP/UDP編程 39 .NET中的 UDP編程基礎 UdpClient類 while (true) { data = (ref m_EndPoint)。//接收數(shù)據(jù) m_ReturnData = (data)。 if ((ADD)1)//加入組 { AddMember(m_EndPoint)。 (( )+ has added to group!)。 } else if ((DEL)1)//退出組 { DelMember(m_EndPoint)。 (( ) + has deleted from group!)。 } else { if ((m_EndPoint)) //轉發(fā)數(shù)據(jù) { SendToMember(m_ReturnData + [ + ( ) + ])。 (m_ReturnData + [ + ( ) + ] + has resented to members!)。 } } } ( )。 } } } } 第6章 TCP/UDP編程 40 多播編程 多播概念 近年來,隨著因特網(wǎng)的迅速普及和發(fā)展,在因特網(wǎng)上產(chǎn)生了許多新的應用,其中不少是基于寬帶的多媒體應用,例如網(wǎng)絡視頻會議、網(wǎng)絡音頻 /視頻廣播、視頻點播、股市行情發(fā)布、多媒體遠程教育、協(xié)同計算、遠程會診等。采用單播技術構建的傳統(tǒng)網(wǎng)絡已經(jīng)無法滿足這些新興寬帶網(wǎng)絡應用在帶寬和網(wǎng)絡服務質(zhì)量方面的要求,常常會帶來網(wǎng)絡延時、數(shù)據(jù)丟失等問題。為此,人們提出了多種解決方案,例如增加互聯(lián)帶寬、引入 QoS機制等。比較而言, IP多播技術有其獨特的優(yōu)越性。在多播網(wǎng)絡中,即使用戶數(shù)量成倍增長,主干帶寬也不需要隨之增加。簡單來說,成百上千的多播應用用戶和一個多播應用用戶消耗的骨干網(wǎng)帶寬是一樣的,從而最大限度地解決目前寬帶應用對帶寬和網(wǎng)絡服務質(zhì)量的要求。正因為如何, IP多播技術得到了迅速發(fā)展。 多播是一種允許一個或多個發(fā)送者(多播源)將單一的數(shù)據(jù)包同時發(fā)送到多個接收者的網(wǎng)絡技術。多播源把數(shù)據(jù)包發(fā)送到特定多播組,只有屬于該多播組的成員才能接收到數(shù)據(jù)包,并且組成多播組的成員不限于在同一個網(wǎng)絡。因特網(wǎng)上的主機可以通過網(wǎng)際組管理協(xié)議( IGMP)加入某個多播組中,也可以動態(tài)離開該組,相關路由器將跟蹤這種關系并形成一條到達多播組中每個成員的無回路路徑,以便對多播成員實現(xiàn)有效管理,這些路由器不妨稱其為多播路由器。一旦多播數(shù)據(jù)包傳遞到某多播路由器,它將根據(jù)多播組的組成信息將該數(shù)據(jù)報轉發(fā)到每一個多播成員,如圖 。因此,多播可以大大地節(jié)省網(wǎng)絡帶寬,無論有多少個目標地址,在整個網(wǎng)絡的任何一條鏈路上只傳送單一的數(shù)據(jù)包。 第6章 TCP/UDP編程 41 多播編程 多播概念 一個多播組由若干個主機構成,當某源主機要將數(shù)據(jù)發(fā)送給某個多播組上的所有主機時,首先需要構造一個能夠標識該多播組的 IP數(shù)據(jù)報,然后以盡力而為方式轉發(fā)給對應多播組中的各個主機。為了標識多播組,在TCP/IP中引入了 IP多播地址,每個多播組都需要一個 IP多播地址來標識。在TCP/IP協(xié)議族中, IP地址方案專門為多播劃出了一個地址范圍。例如 IPv4中的 D類地址,其范圍是 ~ ,并將 D類地址劃分為局部鏈接多播地址、預留多播地址和管理權限多播地址,如表 。 圖 多播工作示意圖 表 D類地址分配 類 別 地 址 范 圍 描 述 局部鏈接地址 ~ 用于局域網(wǎng),路由器不轉發(fā)屬于此范圍的IP包 預留多播地址 ~.255 用于全球范圍或網(wǎng)絡協(xié)議 管理權限地址 ~.255 組織內(nèi)部使用,用于限制多播范圍 第6章 TCP/UDP編程 42 多播編程 多播概念 為了更好地管理多播組中的成員, TCP/IP中引入了網(wǎng)際組管理協(xié)議(Inter Group Management Protocol, IGMP),用于在多播路由器和主機之間進行群組關系的管理。該協(xié)議運行于主機和與主機直接相連的多播路由器之間。主機通過此協(xié)議告訴本地路由器希望加入某個特定多播組的信息,同時路由器通過此協(xié)議周期性地查詢局域網(wǎng)內(nèi)某個已知組的成員是否處于活動狀態(tài)(即該局域網(wǎng)是否仍有屬于某個多播組的成員),實現(xiàn)所連網(wǎng)絡組成員關系的收集與維護。 在支持多播的網(wǎng)絡中,多播群組管理所需要的數(shù)據(jù)主要存放在路由器中。每個支持多播的路由器都有一張多播地址表,其中每個多播地址對應一個多播群組,而且一個多播群組至少包含本地網(wǎng)絡上的一個成員。多播組是基于進程創(chuàng)建的,每個進程在主機的給定接口上可以加入一個多播組,也可以離開其先前加入的多播組。多播路由器負責把多播數(shù)據(jù)包傳遞給某個多播群組中的各個成員。如果一個物理網(wǎng)絡上存在多個支持多播的路由器,這些路由器上的多播地址表肯定是互不相同的。在因特網(wǎng)中,如何通過多播路由器來管理多播群組成員呢? IGMP提供三種操作方式來實現(xiàn)群組管理。 第6章 TCP/UDP編程 43 多播編程 多播概念 1.加入多播組 主機和路由器都可以加入一個多播組。當某個主機中的一個進程申請加入一個多播組時,主機將發(fā)送一個成員關系報告報文到它所在的 IP子網(wǎng)的多播路由器;路由器接收到該申請后將檢查它的群組成員關系表,看該主機是否已經(jīng)在群組中;如果該主機不在群組關系表中(即第一次申請),同時將自己的 IP模塊做相應的準備,以便開始接收來自該多播組的數(shù)據(jù)。如果這臺主機是它所在的 IP子網(wǎng)中第一臺加入該多播組的主機,則多播路由器將通過路由信息的交換加入多播分布樹。 2.退出多播組 當主機發(fā)現(xiàn)在一個特定的多播組中已經(jīng)沒有進程時,就發(fā)送退出報告。多播路由器收到退出報告后,并不立即刪除這個群組,而是針對該群組發(fā)送查詢報文。當在指定的時間內(nèi)沒有收到相關主機(和路由器)對該群組的成員關系報告時,就意味著在本網(wǎng)絡上已經(jīng)沒有該群組成員,此時,多播路由器將刪除該群組。否則繼續(xù)保留該群組。 3.查詢成員關系 由于多播組中的成員關系是動態(tài)變化的,并且有些變化是由于異常事件而引起的,例如某個群組的某臺成員主機因異常而關機,此時多播路由器將永遠接收不到其退出報告。為了實時掌握群組的成員組成, IGMP提供了一種機制來監(jiān)控某個網(wǎng)絡上的所有主機和路由器,以便確定群組和主機或路由器之間的關系。 第6章 TCP/UDP編程 44 多播編程 .NET中多播編程基礎 在 .NET中,對多播編程沒有特殊的類一級的支持,由于多播只支持 UDP傳輸協(xié)議,因此只需要使用 UdpClient類就可以實現(xiàn)多播數(shù)據(jù)的發(fā)送和接收。 1.多播數(shù)據(jù)的發(fā)送 對于多播數(shù)據(jù)的發(fā)送,與普通的基于 UDP協(xié)議的數(shù)據(jù)傳輸不同的是,必須使用一個多播地址,多播地址的范圍從 ~ 。如下代碼可以實現(xiàn)多播數(shù)據(jù)的發(fā)送。 string m_groupIP = 。 //多播地址 int m_port = 7777。 int m_ttl = 2。 UdpClient m_client。 IPAddress m_ipA = (m_groupIP)。 m_EndPoint = new IPEndPoint(m_ipA, m_port)。 m_client = new UdpClient( )。 (data, , m_EndPoint)。 //多播數(shù)據(jù)發(fā)送 2.多播數(shù)據(jù)的接收 對于需要接收多播數(shù)據(jù)的客戶程序,首先必須加入多播組。在 UdpClient類中提供了 JoinMulticastGroup方法來實現(xiàn)加入多播組的操作。調(diào)用JoinMulticastGroup方法后,基礎 Socket將 IGMP數(shù)據(jù)包發(fā)送到路由器,請求成為多播組成員。如果指定的地址在多播地址范圍之外,或者所請求的路由器不支持多播,則 UdpClient類將引發(fā) SocketException異常。 JoinMulticastGroup方法提供了四種重載形式,如下所示。 第6章 TCP/UDP編程 45 多播編程 ( 1) JoinMulticastGroup (IPAddress),根據(jù)指定的 IP地址將 UdpClient添加到多播組。 ( 2) JoinMulticastGroup (Int32, IPAddress),將 UdpClient添加到多播組,其中第
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1