<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                在單播模式中有服務器端和客戶端之分,而組播模式與單播模式不同,每個端都是以路由器或交換機做為中轉廣播站,任意一端向路由器或交換機發送消息,路由或交換機負責發送其他節點,每個節點都是同等的。所以在編程模式上用同一個類表示即可——MulticastSocket。 MulticastSocket屬于jdk提供的類,類路徑為java.net.MulticastSocket,利用此類可以很方便地實現組播功能,下面展示一個簡單例子,兩個節點之間通過組播傳輸消息。 ①節點一,指定組播地址為228.0.0.4,端口為8000,節點一通過調用MulticastSocket的joinGroup方法申請將節點一加入到組播隊伍中,接著使用一個無限循環往組里發“Hello?from?node1”消息,這是為了方便節點2加入后接收節點1的消息做準備,需要說明的是組播是通過DatagramPacket對象發送消息的,調用MulticastSocket的send方法即可把消息發送出去。這里為了縮減例子長度省去了退出組及關閉套接字的一些操作,實際使用中需完善。 ~~~ public?class?Node1?{ private?static?int?port?=?8000; private?static?String?address?=?"228.0.0.4"; public?static?void?main(String[]?args)?throws?Exception?{ try?{ InetAddress?group?=?InetAddress.getByName(address);? MulticastSocket?mss?=?null; mss?=?new?MulticastSocket(port); mss.joinGroup(group); while?(true)?{ String?message?=?"Hello?from?node1"; byte[]?buffer?=?message.getBytes();? DatagramPacket?dp?=?new?DatagramPacket(buffer,?buffer.length, group,?port); mss.send(dp);? Thread.sleep(1000); } }?catch?(IOException?e)?{ e.printStackTrace(); }? } } ~~~ ②節點二,指定同樣的組播地址與端口,申請加入與節點一相同的組播組,接著通過循環不斷接收來自其他節點發送的消息,通過MulticastSocket的receive方法可讀到消息,將不斷接收到來自節點一發送的消息“receive?from?node1:Hello?from?node1”。當然節點2也可以往組播組發送消息,因為每個節點都是同等的,只要其他節點對組播消息進行接收。如果你還想增加其他節點,盡管申請加入組播組,所有節點都可以接收發送消息。 ~~~ public?class?Node2?{ private?static?int?port?=?8000; private?static?String?address?=?"228.0.0.4"; public?static?void?main(String[]?args)?throws?Exception?{ InetAddress?group?=?InetAddress.getByName(address);? MulticastSocket?msr?=?null; try?{ msr?=?new?MulticastSocket(port); msr.joinGroup(group); byte[]?buffer?=?new?byte[1024]; while?(true)?{ DatagramPacket?dp?=?new?DatagramPacket(buffer,?buffer.length);? msr.receive(dp);? String?s?=?new?String(dp.getData(),?0,?dp.getLength());? System.out.println("receive?from?node1:"+s); } }?catch?(IOException?e)?{ e.printStackTrace(); }? } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看