天天看點

android multicast(多點傳播)發送端和接收端源代碼,android multicast 多點傳播(多點傳播)問題

有誰遇到過同樣問題的可以探讨下,或者已經解決問題的,能夠指導下我

擷取多點傳播鎖

private  InetAddress   group;

WifiManager  wm=(WifiManager)getSystemService(Context.WIFI_SERVICE);

MulticastLock mlock=wm.createMulticastLock("mygroup");

mlock.acquire();

group =InetAddress.getName("239.255.255.250");  //建立多點傳播組

不能在UI thread 上直接發送和接收多點傳播,開辟一個子線程

new Thread(){

public void run(){

StringBuffer sb=new StringBuffer();

sb.append("data");  //發送多點傳播的内容

byte[]  sendata=sb.getBytes();

mlock.setLoopbackMode(true);  //設定模式  Loopbackmode 不是很清楚 根據意思應該是   周期性的發送消息  這個要看具體的抓包什麼情況

mlock.joinGroup(group);

//設定時間任務每隔3秒發送一次多點傳播

Timer timer=new Timer();

timer.schedule(new MyTimerTask(),3000);

while(true){

DatagramPacket temppacket=new new DatagramPacket(bs, bs.length, group,prot);

mlock.recive(temp);

String packetIpAddress = new String(temp.getData(), 0, temp.getLength()).trim();

if(){    //過濾出想要擷取的資訊

}else{

Thread.sleep(2000);          //休眠兩秒再接收多點傳播

}

}

}

}.start();

//時間任務

class MyTimerTask extends TimerTask{

byte[] bs = new byte[1024];

@Override

public void run() {

// TODO Auto-generated method stub

DatagramPacket packet = new DatagramPacket(sendData,sendData.length, group, Integer.valueOf(pro.getProperty("multicast_port")));

try {

multicastsocket.send(packet);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

接收和發送放在同一個線程裡循環執行

使用 htc 4.01  和sony 4.2.2的可以接收到多點傳播  但是lg nexus 4.3 和nexus 4.4 都接收不到多點傳播!表示很不解呀

難道版本越高 反而不支援多點傳播還是需要在手機上做什麼設定?

Android上UDP多點傳播無法接收資料的問題

最近,想做一個跨平台的區域網路的檔案傳輸軟體,思路是多點傳播裝置資訊,TCP連接配接傳輸檔案.于是進行了一次簡單的UDP多點傳播測試,發現Android對于UDP多點傳播接收資料的支援即極為有限. 部分代碼如下 pac ...

IP多點傳播(多點傳播)

IP多點傳播是實作資料一對多通信的模式.從一個源點傳送到多個目的地,資料僅僅拷貝一份.這裡說的資料僅僅拷貝一份,是指在每一條須要它的兩個點之間,資料僅僅有一份.例如以下圖為(謝希 ...

Java單點傳播、廣播、多點傳播(多點傳播)---轉

一.通信方式分類 在目前的網絡通信中有三種通信模式:單點傳播.廣播和多點傳播(多點傳播),其中多點傳播出現時間最晚,同時具備單點傳播和廣播的優點. 單點傳播:單台主機與單台主機之間的通信 廣播:當台主機與網絡中的所有主機通信 ...

Java單點傳播、廣播、多點傳播(多點傳播)

一.通信方式分類 在目前的網絡通信中有三種通信模式:單點傳播.廣播和多點傳播(多點傳播),其中多點傳播出現時間最晚,同時具備單點傳播和廣播的優點. 單點傳播:單台主機與單台主機之間的通信 廣播:當台主機與網絡中的所有主機通信 ...

Android開發:多點傳播(多點傳播)與廣播

近期由于需要編寫能夠使同一區域網路中的Android用戶端與PC端進行自動比對通信功能的程式,學習并試驗了JAVA多點傳播與廣播的内容,記錄一些了解如下: 一.多點傳播(多點傳播) 背景知識:多點傳播使用UDP對一定範 ...

淺談Android中的多點傳播(多點傳播)

多點傳播使用UDP對一定範圍内的位址發送相同的一組Packet,即一次可以向多個接受者發出資訊,其與單點傳播的主要差別是位址的形式.IP協定配置設定了一定範圍的位址空間給多點傳播(多點傳播隻能使用這個範圍内的IP),IP ...

【miscellaneous】多點傳播(多點傳播)原理分析

為什麼要使用多點傳播:        網卡從網絡上接收到目标實體位址對應的所有bit位都為1的資料報時,會收到這條消息并将其上傳給驅動程式,網卡的這種工作模式稱為廣播模式,網卡的預設工作模式包含直接模式和 ...

Android MulticastSocket IP多點傳播

MulticastSocket是對等的關系,也就是他們通過IP多點多點傳播保留的位址來互相接收在這個組的Socket發送的消息 我寫了一個例子,MultiSocketB是一個service,用于先接收再發 ...

多點傳播(Multicast)傳輸

多點傳播(Multicast)傳輸: 在發送者和每一接收者之間實作點對多點網絡連接配接. 如果一台發送者同時給多個的接收者傳輸相同的資料,也隻需複制一份的相同資料包.它提高了資料傳送效率.減少了骨幹網絡出現擁 ...

随機推薦

.net學習筆記----HttpRequest,WebRequest,HttpWebRequest差別

WebRequest是一個虛類/基類,HttpWebRequest是WebRequest的具體實作 HttpRequest類的對象用于伺服器端,擷取用戶端傳來的請求的資訊,包括HTTP封包傳送過來的所 ...

使用Python 将shapefile導入mongodb

使用Python 将shapefile導入mongodb 随着big data時代的到來,各個行業都在考慮能不能把big data的思路.方法引入進來,GIS行業也不能免俗. 下面就介紹一下如何将sh ...

install docker on xubuntu

ref: https://docs.docker.com/engine/installation/linux/ubuntulinux/#/install-the-latest-version ps: ...

SSH基本架構搭建後的簡化

對于SSh架構的簡化,我們可以從下面幾個方面來剖析: 1.實體類entity:在這裡我們需要将資料庫和實體類進行關聯,在簡化之前,我們需要在entity包裡面加入一份.xml配置檔案 例如原碼---- ...

[轉載]C#設定開機啟動

原理就是在系統資料庫啟動項裡添加一項.路徑:SOFTWARE\Microsoft\Windows\CurrentVersion\Run或者直接:運作->regedit找到這個路徑添加一項. usin ...

JavaScript進階程式設計5.pdf

隊列方法通路規則是FIFO(First-In-First-Out,先進先出),數組方法shift()能夠移除數組中第一個項并傳回該項,同時将數組長度減1,結合使用shift()和push(),可以像隊 ...

【2】開發環境的搭建,Ubuntu14.04

這裡使用的是Ubuntu14.04 Unity 更新源 首先,将更新源更換為國内更新源,我這裡使用的是網易的更新源 sudo gedit /etc/apt/sources.list deb http: ...

zTree實作更新根節點中第i個節點的名稱

zTree實作更新根節點中第i個節點的名稱 1.實作源碼

zTree實作基本樹 ...

js數組string對象api常用方法

charAt() 方法可傳回指定位置的字元. stringObject.charAt(index) indexOf() 方法可傳回某個指定的字元串值在字元串中首次出現的位置. stringObject ...

python3字元串

Python3 字元串 Python字元串運算符 + 字元串連接配接 a + b 輸出結果: HelloPython * 重複輸出字元串 a*2 輸出結果:HelloHello [] 通過索引擷取字元串中 ...