當前位置:首頁 » 網頁前端 » 腳本發送組播
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

腳本發送組播

發布時間: 2022-08-26 10:14:27

A. 通過shell腳本/bat批處理命令方式向其他伺服器發送文件

scp或者rsync
批處理也可以用rsync,但是需要安裝個windows的rsync包

B. 40、在Java中,如何實現組播通信

編輯一個java組播應用程序的過程如下

1. 創建一個用於發送和接收的MulticastSocket組播套接字對象
2. 創建一個指定緩沖區大小及組播地址和埠的DatagramPacket組播數據包對象
3. 使用組播套接字joinGroup(),將其加入到一個組播
4. 使用組播套接字的send()方法,將組播數據包對象放入其中,發送組播數據包.
或者
使用組播套接字的receive()方法,將組播數據包對象放入其中,接收組播數據包
5. 解碼組播數據包提取信息,並依據得到的信息作出響應String s = new String(dp.getData(), 0, dp.getLength());
6. 重復過程4和5,即在while循環中實現。
7. 使用組播套接字的leaveGroup()方法,離開組播組;關閉組播套接字

接收組播數據包程序:
Java代碼
public class MulticastReceived {

public static void main(String[] args) throws Exception {
InetAddress group = InetAddress.getByName("224.0.0.4"); // 組播地址
int port = 4006; // 埠
MulticastSocket msr = null;
try {
msr = new MulticastSocket(port); // 1.創建一個用於發送和接收的MulticastSocket組播套接字對象
msr.joinGroup(group); // 3.使用組播套接字joinGroup(),將其加入到一個組播
byte[] buffer = new byte[8192];
System.out.println("接收數據包啟動!(啟動時間:)" + new java.util.Date() + ")");
while (true) {
DatagramPacket dp = new DatagramPacket(buffer, buffer.length); // 2.創建一個指定緩沖區大小及組播地址和埠的DatagramPacket組播數據包對象
msr.receive(dp); // 4.使用組播套接字的receive()方法,將組播數據包對象放入其中,接收組播數據包
String s = new String(dp.getData(), 0, dp.getLength()); // 5.解碼組播數據包提取信息,並依據得到的信息作出響應
System.out.println(s);
}
} catch (IOException e) {
e.printStackTrace();

} finally {
if (msr != null) {
try {
msr.leaveGroup(group); // 7.使用組播套接字的leaveGroup()方法,離開組播組
msr.close(); // 關閉組播套接字
} catch (IOException e) {
}
}
}
}
}

發送組播數據包程序:
Java代碼
public class MulticastSender {

public static void main(String[] args) throws Exception {
InetAddress group = InetAddress.getByName("224.0.0.1"); // 組播地址
int port = 4000; // 埠
MulticastSocket mss = null;
try {
mss = new MulticastSocket(port); // 1.創建一個用於發送和接收的MulticastSocket組播套接字對象
mss.joinGroup(group); // 3.使用組播套接字joinGroup(),將其加入到一個組播
byte[] buffer = new byte[8192];
System.out.println("接收數據包啟動!(啟動時間:)" + new java.util.Date() + ")");
while (true) {
String message = "Hello" + new java.util.Date();
byte[] buffer2 = message.getBytes(); // 2.創建一個指定緩沖區大小及組播地址和埠的DatagramPacket組播數據包對象

DatagramPacket dp = new DatagramPacket(buffer, buffer.length, group, port);
// msr.receive(dp); //接收組播數據包

mss.send(dp); // 4.使用組播套接字的send()方法,將組播數據包對象放入其中,發送組播數據包
// String s = new String(dp.getData(), 0, dp.getLength()); //5.解碼組播數據包提取信息,並依據得到的信息作出響應
System.out.println("發送數據包給" + group + ":" + port);
Thread.sleep(1000);
}
} catch (IOException e) {
e.printStackTrace();

} finally {
if (mss != null) {
try {
mss.leaveGroup(group); // 7.使用組播套接字的leaveGroup()方法,離開組播組
mss.close(); // 關閉組播套接字
} catch (IOException e) {
}
}
}
}
}

C. 什麼是「單播」「組播」和「多播」

「單播」「組播」和「多播」意思是:

單播:用網路技術的術語來描述就是「單播」,此時信息的接收和傳遞只在兩個節點之間進行,網路節點之間的通信就好像是人們之間的對話一樣。如果一個人對另外一個人說話。

多播也稱為「組播」:將網路中同一業務類型主機進行了邏輯上的分組,進行數據收發的時候其數據僅僅在同一分組中進行,其他的主機沒有加入此分組不能收發對應的數據。

(3)腳本發送組播擴展閱讀:

單播的缺點:

1. 伺服器針對每個客戶機發送數據流,伺服器流量=客戶機數量×客戶機流量;在客戶數量大、每個客戶機流量大的流媒體應用中伺服器無法支持如此龐大的數據流。

2. 現有的網路帶寬是金字塔結構,城際省際主幹帶寬僅僅相當於其所有用戶帶寬之和的5%。如果全部使用單播協議,將造成網路主幹不堪重負。

IP多播通信必須依賴於IP多播地址,在IPv4中它是一個D類IP地址,范圍從224.0.0.0到239.255.255.255,並被劃分為局部鏈接多播地址、預留多播地址和管理許可權多播地址三類。

其中,局部鏈接多播地址范圍在224.0.0.0~224.0.0.255這是為路由協議和其它用途保留的地址,路由器並不轉發屬於此范圍的IP包;

預留多播地址為224.0.1.0~238.255.255.255,可用於全球范圍(如Internet)或網路協議;管理許可權多播地址為239.0.0.0~239.255.255.255,可供組織內部使用,類似於私有IP地址,不能用於Internet,可限制多播范圍。

網路 - 多播

D. 請教UDP組播報文發送問題

更新一些信息:
更改組播地址發現:貌似
224.0.0.x
的組播報文可以發送出去,但是224.0.1.x的組播報文發送不出去。更新一些信息:
發送的報文是1588
V2
的組播報文。
奇怪的是這個報文對224.0.1.x的地址不能正確轉發出去。自己解答一下,現在問題已經解決,原因是其中一個dev沒有IP地址,造成內核經過br0轉發出去的時候,不知道出口造成。

E. 如何在區域網使用組播(多播).

1、交換機開啟多播功能。
2、ghostsrv和客戶端的ghost要求版本同一。
3、最好先用ghostsrv採集母盤,成功率比較高。
組播(Multicast)傳輸:在發送者和每一接收者之間實現點對多點網路連接。如果一台發送者同時給多個的接收者傳輸相同的數據,也只需復制一份的相同數據包。它提高了數據傳送效率。減少了骨幹網路出現擁塞的可能性。

F. 華為雲平台環境組播不通-11g rac 安裝

./runcluvfy.sh stage -pre crsinst -n db1,db2 -verbose grid執行檢查,發現存在組播無法通訊的情況,日誌如下:

oracle提供了一個測試的腳本工具 mcasttest.pl

和華為雲平台運維人員溝通後發現私有網卡的安全組配置為現在點對點ip的方式。所以導致組播地址無法通訊,修改安全組策略為不限制後再次進行測試組播可以正常通訊。

同時分享一個組播的測試工具參考mos文檔《 Grid Infrastructure Startup During Patching, Install or Upgrade May Fail Due to Multicasting Requirement (Doc ID 1212703.1)

如何使用mcasttest, 前提節點間需要配置免密登陸 :

Note: Multicast based communication only needs to be successful on either the 230.0.1.0 address or the 224.0.0.251 address. A successful multicast communication on both addresses is not required. 另外通訊在230和224任意網路上面都可以,不需要全部能通。

G. 網路中的「組播」是什麼意思

組播是一種數據包傳輸方式,當有多台主機同時成為一個數據包的接受者時,出於對帶寬和CPU負擔的考慮,組播成為了一種最佳選擇。

組播和單播的區別?
為了讓網路中的多個主機可以同時接受到相同的報文,如果採用單播的方式,那麼源主機必須不停的產生多個相同的報文來進行發送,對於一些對時延很敏感的數據,在源主機要
產生多個相同的數據報文後,在產生第二個數據報文,這通常是無法容忍的。而且對於一台主機來說,同時不停的產生一個報文來說也是一個很大的負擔。
如果採用組播的方式,源主機可以只需要發送一個報文就可以到達每個需要接受的主機上,這中間還要取決於路由器對組員和組關系的維護和選擇。

組播和廣播的區別?
如同上個例子,當有多台主機想要接收相同的報文,廣播採用的方式是把報文傳送到區域網內每個主機上,不管這個主機是否對報文感興趣。這樣做就會造成了帶寬的浪費和主機的資源浪費。而組播有一套對組員和組之間關系維護的機制,可以明確的知道在某個子網中,是否有主機對這類組播報文感興趣,如果沒有就不會把報文進行轉發,並會通知上游路由器不要再轉發這類報文到下游路由器上。