UDP廣播,多播,單播

       在說udp廣播,多播,單播之前,首先說一下udp這個協議,它是一種無連接,不可靠的網絡通信協議,但基於UDP的消息傳遞更快。在使用它傳輸數據時,用戶無法知道數據是否正確到達主機,也不能確定到達目的地的順序是否和發送的信息相同,所以有時候會出現丟包現象。
       看書總結出的對廣播的看法, *廣播*的意思是往這個地址發送的信息,在整個網段中的主機都能收到信息。廣播分爲直接廣播地址和受限廣播地址,受限廣播這個很好理解,就是255.255.255.255,它不經路由轉發,發送給同一網段下的所有主機。而直接廣播的地址是主機位全爲1,可以由主機的ip地址和掩碼計算的得到,如IP:192.168.48.192,掩碼:255.255.252.0,兩者進行與運算得到的是網絡地址(192.168.48.255),由掩碼可以得到主機位有10位,所以將網絡地址的後10位的0全部變爲1,即爲直接廣播地址(192.168.51.255),它可以經過路由轉發。
       在發送包使用到*多播*時,需要將兩個不同的主機加入到同一個組中,地址在224.0.0.0~224.255.255.255之間,這類地址並不代表某個主機的位置,加入到同一個組中的主機可以在某個端口上廣播信息,也可以在某個端口上接收信息。
       在發送*單播*時,需要知道對方主機的地址,可在兩個主機間傳輸數據。
       在java語言中,基於udp通信的基本模式爲:將數據打包,然後將數據發送到目的地;接收別人發來的數據包,然後查看數據包。java語言中新建udp socket類使用DatagramSocket類,將數據打包使用到DatagramPacket類。
       發送數據包:1.使用DatagramSocket()方法創建一個數據包;
              2.使用DatagramPacket(byte[]buf,int offset,int length,InetAddress address,int port)創建要發送的數據包。
                3.使用DatagramSocket類的send()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章