Java 一對多

前言

Internet 協議集支持一個無連接的傳輸協議,該協議稱為用戶數據報協議(UDP,User Datagram Protocol)。UDP 為應用程序提供了一種無需建立連接就可以發送封裝的 IP 數據包的方法。

?

此代碼就是基于UDP協議編寫。

?

通常把一對多的通信稱為多播通信。采用多播通信技術,不僅可以實現一個發送者和多個接收者之間進行通信的功能,而且可以有效減輕網絡通信的負擔,避免資源的無謂浪費。

?

UDP組播地址:224.0.0.0 ~ 224.0.0.255

?

組播有一個特點,就是你發送地址可以使用一個端口,但是你接收地址也可以使用同樣的一個端口。

?

?

數據發送

import java.io.IOException;

import java.net.DatagramPacket;

import java.net.InetAddress;

import java.net.MulticastSocket;

import java.util.Scanner;

?

public class SendDataDemo {

? ? public static void main(String[] args) throws IOException {

?

? ? ? ? /* 組播 */

? ? ? ? Scanner in=new Scanner(System.in);

? ? ? ? MulticastSocket ms=new MulticastSocket();

?

? ? ? ? System.out.println("請輸入用戶名");

? ? ? ? String name=in.next()+":";

?

? ? ? ? new MyThread().start();

? ? ? ? while(true){

? ? ? ? ? ? String target=name+in.next();

? ? ? ? ? ? if("886".equals(target)) { break; }

?

? ? ? ? ? ? byte[] bytes = target.getBytes();

? ? ? ? ? ? InetAddress inetAddress = InetAddress.getByName("224.0.0.0");

? ? ? ? ? ? int port=11451;

? ? ? ? ? ? DatagramPacket dp=new DatagramPacket(bytes,bytes.length,inetAddress,port);

?

? ? ? ? ? ? ms.send(dp); // 發送

? ? ? ? }

? ? ? ? System.out.println("主線程退出");

? ? ? ? ms.close();

? ? }

}

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

?

數據接收線程

import java.io.IOException;

import java.net.*;

?

public class MyThread extends Thread{

? ? @Override

? ? public void run() {

? ? ? ? MulticastSocket ms= null; // 指定接收端口

? ? ? ? try {

? ? ? ? ? ? ms = new MulticastSocket(11451);

? ? ? ? ? ? InetAddress inetAddress = InetAddress.getByName("224.0.0.0"); // 指定組播地址

? ? ? ? ? ? ms.joinGroup(inetAddress); // 將當前接收端加入組播

? ? ? ? } catch (IOException e) {

? ? ? ? ? ? throw new RuntimeException(e);

? ? ? ? }

? ? ? ? byte[] bytes=new byte[1024];

? ? ? ? DatagramPacket dp=new DatagramPacket(bytes,bytes.length);

? ? ? ? while(true){

? ? ? ? ? ? try {

? ? ? ? ? ? ? ? ms.receive(dp); // 接收數據

? ? ? ? ? ? } catch (IOException e) {

? ? ? ? ? ? ? ? throw new RuntimeException(e);

? ? ? ? ? ? }

? ? ? ? ? ? int len = dp.getLength(); // 獲取接收數據的長度

? ? ? ? ? ? byte[] data = dp.getData(); // 獲取存儲接收數據的數組

? ? ? ? ? ? String res = new String(data, 0, len);

?

? ? ? ? ? ? if("886".equals(res)) { break; }

? ? ? ? ? ? System.out.println(res);

? ? ? ? }

? ? ? ? System.out.println("輸出線程退出");

? ? }

}

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

End

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/209318.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/209318.shtml
英文地址,請注明出處:http://en.pswp.cn/news/209318.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【docker 】centOS 安裝docker

官網 docker官網 github源碼 卸載舊版本 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine 安裝軟件包 yum install -y yum-utils \device-mapper-persistent-data…

【優選算法系列】【專題二滑動窗口】第四節.30. 串聯所有單詞的子串和76. 最小覆蓋子串

文章目錄 前言一、串聯所有單詞的子串 1.1 題目描述 1.2 題目解析 1.2.1 算法原理 1.2.2 代碼編寫 1.2.3 題目總結二、最小覆蓋子串 2.1 題目描述 2.2 題目解析 2.2.1 算法原理 2.2.2 代碼編寫 …

【Docker】進階之路:(四)操作容器

【Docker】進階之路:(四)Docker容器 容器的生命周期創建容器docker createdocker run 管理容器查看運行的容器:查看所有容器: 啟動與終止啟動容器終止容器 進入容器docker attachdocker exec 導出和導入導出導入 容器的…

淺談5G基站節能及數字化管理解決方案的設計與應用-安科瑞 蔣靜

截至2023年10月,我國5G基站總數達321.5萬個,占全國通信基站總數的28.1%。然而,隨著5G基站數量的快速增長,基站的能耗問題也逐漸日益凸顯,基站的用電給運營商帶來了巨大的電費開支壓力,降低5G基站的能耗成為…

actitivi自定義屬性(二)

聲明:此處activiti版本為6.0 此文章介紹后端自定義屬性解析,前端添加自定義屬性方法連接:activiti自定義屬性(一)_ruoyi activiti自定義標題-CSDN博客 1、涉及到的類如下: 簡介:DefaultXmlPar…

在 JavaScript 中導入和導出 Excel XLSX 文件:SpreadJS

在 JavaScript 中導入和導出 Excel XLSX 文件 2023 年 12 月 5 日 使用 MESCIUS 的 SpreadJS 將完整的 JavaScript 電子表格添加到您的企業應用程序中。 SpreadJS 是一個完整的企業 JavaScript 電子表格解決方案,用于創建財務報告和儀表板、預算和預測模型、科學、工…

【華為OD】給定一個只包括 ‘(‘,‘)‘,‘{‘,‘}‘,‘[‘,‘]‘ 的字符串

給定一個只包括 (,),{,},[,] 的字符串 s , 判斷字符串是否有效。 有效字符串需滿足: 左括號必須用相同類型的右括號閉合。 左括號必須以正確的順序閉合。 示例 1 : 輸入:s="()" 輸出 : true 示例 2 :

圖的搜索(一):廣度優先搜索算法和深度優先搜索算法

圖的搜索(一):廣度優先搜索算法和深度優先搜索算法 本章主要記錄了圖的搜索算法,和可以解決圖的基本問題——最短路徑問題的算法。本章主要對圖搜索的相關算法進行了介紹:廣度優先搜索算法、深度優先搜索算法。 下一…

公網域名如何解析到內網IP服務器——快解析域名映射外網訪問

在本地搭建主機應用后,由于沒有公網IP或沒有公網路由權限,在需要發布互聯網時,就需要用到外網訪問內網的一些方案。由于內網IP在外網不能直接訪問,通常就用通過外網域名來訪問內網的方法。那么,公網域名如何解析到內網…

Tmux中使用Docker報錯 - 解決方案

問題 進入Tmux會話后,在其中使用Docker可能會出現如下報錯: Got permission denied while trying to connect to the Docker ……解決方案 退出tmux會話: tmux detach在tmux會話外部殺掉tmux進程: pkill -f tmux重新進入tmux&#xff1a…

權威認證!景聯文科技入選杭州市2023年第二批省級“專精特新”中小企業認定名單

為深入貫徹黨中央國務院和省委省政府培育專精特新的決策部署,10月7日,杭州市經濟和信息化委員會公示了2023年杭州“專精特新”企業名單(第二批)。 根據工業和信息化部《優質中小企業梯度培育管理暫行辦法》(工信部企業…

【Vue3+Ts項目】硅谷甄選 — 路由配置+登錄模塊+layout組件+路由鑒權

一、路由配置 項目一共需要4個一級路由:登錄(login)、主頁(home)、404、任意路由(重定向到404)。 1.1 安裝路由插件 pnpm install vue-router 1.2 創建路由組件 在src目錄下新建views文件…

Graphpad Prism10.1.0 安裝教程 (含Win/Mac版)

GraphPad Prism GraphPad Prism是一款非常專業強大的科研醫學生物數據處理繪圖軟件,它可以將科學圖形、綜合曲線擬合(非線性回歸)、可理解的統計數據、數據組織結合在一起,除了最基本的數據統計分析外,還能自動生成統…

Python:核心知識點整理大全8-筆記

目錄 ?編輯 4.5 元組 4.5.1 定義元組 dimensions.py 4.5.2 遍歷元組中的所有值 4.5.3 修改元組變量 4.6 設置代碼格式 4.6.1 格式設置指南 4.6.2 縮進 4.6.3 行長 4.6.4 空行 4.6.5 其他格式設置指南 4.7 小結 第5章 if語句 5.1 一個簡單示例 cars.py 5.2 條…

現代皮質沙發模型材質編輯

在線工具推薦: 3D數字孿生場景編輯器 - GLTF/GLB材質紋理編輯器 - 3D模型在線轉換 - Three.js AI自動紋理開發包 - YOLO 虛幻合成數據生成器 - 三維模型預覽圖生成器 - 3D模型語義搜索引擎 當談到游戲角色的3D模型風格時,有幾種不同的風格&#xf…

線性容器(QByteArray、QString、QList模板類)、堆棧窗體

QT 線性容器 點擊查看:字符和字節的區別,ASCII、Unicode 和 UTF-8 編碼的區別。(👈 安全鏈接,放心跳轉) QByteArray 思考:char buf[6] “hello”; 如果 C 語言中要利用 buf 內容重新生成 “…

學生備考使用臺燈到底好不好?公認好用的護眼臺燈推薦

在現代生活中,許多學生的學習壓力越來越大,面臨的近視幾率也越來越大,特別是初中生,眼睛發育還未完全,使用不恰當的燈光也會對眼睛造成損害,特別是護眼臺燈。雖然護眼臺燈在功能上能夠提供充足、柔和的光線…

harbor倉庫鏡像遷移腳本

import subprocess import json import logging# 配置日志 logging.basicConfig(levellogging.INFO, format%(asctime)s - %(levelname)s - %(message)s)# 替換這里的Harbor倉庫地址和憑據 harbor_url "https://harbor.test.com" harbor_name "harbor.test.co…

《文存閱刊》期刊發表簡介

《文存閱刊》以“深研文化創新,崇尚科學真理,堅持雙百方針,打造學術精品”為辦刊宗旨,涵蓋藝術、文學、社科等多項內容,適應了文化市場需求,很好的回應了廣大文化理論工作者的關切,為下一步打造…

ChatGPT新媒體運營神器:輕松駕馭內容創作與傳播

文章目錄 1. 內容創作2. 社交媒體管理3. 用戶互動與客戶服務 《巧用ChatGPT輕松玩轉新媒體運營》內容簡介作者簡介目錄前言/序言本書內容本書特色本書讀者對象獲取方式 隨著互聯網的高速發展,新媒體已經成為了人們獲取信息、交流思想的重要渠道。在這個信息爆炸的時…