androidudp,Androidudp組播只進一次

android:udp廣播

首先手機作為終端 可以不必要知道終端的數(shù)量、 還有就是我建議你多學習下基礎(chǔ),android的廣播機制不是把廣播在終端之間傳輸,廣播是在應(yīng)用程序里面發(fā)送,在應(yīng)用程序進行接收。個人建議基礎(chǔ)才是王道。 對于你現(xiàn)在這個問題,不妨采用發(fā)送消息的方式 實現(xiàn)該功能。一個終端發(fā)送消息 其他終端接收消息,當然也相當于寫一個socket通信。通信建立之后 ,可以取得各個連接的終端的IP 然后怎么邏輯就看你怎么寫算法了。還有就是,這個功能也可以用消息推送的方式(建議采用此方法)、android系統(tǒng)內(nèi)置有消息推送,邏輯都和上述的差不多,至于具體用那些方法 那些內(nèi)置類,個人建議多查API。軟件開發(fā)必須靠自學。。。。

公司主營業(yè)務(wù):成都做網(wǎng)站、成都網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出札達免費做網(wǎng)站回饋大家。

android接收不到udp包嗎

1、有的手機不能直接接收UDP包,可能是手機廠商在定制Rom的時候把這個功能給關(guān)掉了。 2、在UDP通信中,android端發(fā)送UDP廣播包沒有問題。至于接收的話,有時候不能接收到包。

Android 使用udp發(fā)送廣播

最近做項目時,遇到一個對新人我來說稍微有點麻煩的事情!

那就是使用udp協(xié)議發(fā)送廣播獲取服務(wù)器地址!

http都好說,github開源項目不知道有多少。

可是再難的問題也要去解決!

發(fā)送廣播需要權(quán)限!

AndroidManifest.xml 中添加:

最少這三個是必須的,多的也忘了!

原因后面會講到

使用到RxJava:

udp發(fā)送與接受都需指定端口號

廣播地址是255.255.255.255

在之前添加權(quán)限的時候CHANGE_WIFI_MULTICAST_STATE有添加這個

往下面看

接下來我們開啟接收udp信息

發(fā)送消息?

謝謝該作者的文章讓我學會udp發(fā)送

如何修正安卓虛擬機收不到udp包的問題

前言

當我們做安卓開發(fā)時,大多數(shù)人還是習慣用虛擬機,畢竟真機巴拉來巴拉去的不如鼠標方便,尤其是調(diào)試一些功能模塊時,比如socket udp , 下文說明如何用as+虛擬機調(diào)試 socket udp, 實測

如何搭建udp服務(wù)器和客戶端不提了,簡單的搭建隨便找一個吧

首先我們的前提是 我們在pc上建立了一個UDP服務(wù)器,目的是通過這服務(wù)器給虛擬機發(fā)送一個udp包

但如何發(fā)送這個包呢?

如果想當然的這樣做在server上給"127.0.0.1:9014"發(fā)送包,然后在虛擬機的9014端口接受包,你會發(fā)現(xiàn)無論發(fā)多少次,虛擬機什么都收不到。 原因是,你這個包并不是發(fā)給虛擬機了,而是發(fā)給了本地端口,

也許你會說,給虛擬機發(fā)應(yīng)該用虛擬機的ip地址,好的,通過嘗試我們發(fā)現(xiàn)給虛擬機的ip地址+9014端口,仍然無法收到。(我用工具查看的虛擬機ip地址是10.0.2.15)

正確步驟

1.把PC端口9014映射到虛擬機,意思就是當PC 9014端口收到udp包,它會轉(zhuǎn)發(fā)給虛擬機相應(yīng)的端口

使用windows程序telnet即可達到映射的目的,(注意Telnet在win10需要開啟,可查找怎么開啟這個程序)

打開cmd 輸入如下命令連接到本地虛擬機

telnet localhost 5554

連接成功后他會提示你輸入驗證,并告訴你驗證碼在哪里

android udp接收不到數(shù)據(jù)

1、可先在oncreate()方法里面實例化一個WifiManager.MulticastLock 對象lock;具體如下:

WifiManager manager = (WifiManager) this

.getSystemService(Context.WIFI_SERVICE);

WifiManager.MulticastLock lock= manager.createMulticastLock("test wifi");

2、在調(diào)用廣播發(fā)送、接收報文之前先調(diào)用lock.acquire()方法;

3、用完之后及時調(diào)用lock.release()釋放資源,否決多次調(diào)用lock.acquire()方法,程序可能會崩,詳情請見

Caused by: java.lang.UnsupportedOperationException: Exceeded maximum number of wifi locks

注;記得在配置文件里面添加如下權(quán)限:

uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /

經(jīng)過這樣處理后,多數(shù)手機都能正常發(fā)送接收到廣播報文。

本小點轉(zhuǎn)載自Android手機接收不到UDP報文

二、在UDP通信中,android端發(fā)送UDP廣播包沒有問題。至于接收的話,有時候不能接收到包。

在UDP通信中,android端發(fā)送UDP廣播包沒有問題。至于接收的話,有時候不能接收到包。但是如果UDP包中指定了目標主機的地址的話,那么android端就能正常接收。

下面上一段代碼,大家可用這段代碼進行測試。

1、在一個Service里面,我們創(chuàng)建一個線程

public void onCreate() {//用于創(chuàng)建線程

WifiManager manager = (WifiManager) this

.getSystemService(Context.WIFI_SERVICE);

udphelper = new UdpHelper(manager);

//傳遞WifiManager對象,以便在UDPHelper類里面使用MulticastLock

udphelper.addObserver(MsgReceiveService.this);

tReceived = new Thread(udphelper);

tReceived.start();

super.onCreate();

}

2、弄一個UDP幫助類,這個類主要用于發(fā)送和接收數(shù)據(jù)

package com.example.com.ihome.bang.util;

import java.io.IOException;

import java.net.DatagramPacket;

import java.net.DatagramSocket;

import java.net.InetAddress;

import java.net.MulticastSocket;

import java.net.SocketException;

import java.net.UnknownHostException;

import java.util.Observable;

import com.example.com.ihome.bang.tool.SendThread;

import android.net.wifi.WifiManager;

import android.util.Log;

/**

*

* UdpHelper幫助類

*

* @author 陳喆榕

*

*/

public class UdpHelper implements Runnable {

public Boolean IsThreadDisable = false;//指示監(jiān)聽線程是否終止

private static WifiManager.MulticastLock lock;

InetAddress mInetAddress;

public UdpHelper(WifiManager manager) {

this.lock= manager.createMulticastLock("UDPwifi");

}

public void StartListen() {

// UDP服務(wù)器監(jiān)聽的端口

Integer port = 8903;

// 接收的字節(jié)大小,客戶端發(fā)送的數(shù)據(jù)不能超過這個大小

byte[] message = new byte[100];

try {

// 建立Socket連接

DatagramSocket datagramSocket = new DatagramSocket(port);

datagramSocket.setBroadcast(true);

DatagramPacket datagramPacket = new DatagramPacket(message,

message.length);

try {

while (!IsThreadDisable) {

// 準備接收數(shù)據(jù)

Log.d("UDP Demo", "準備接受");

this.lock.acquire();

datagramSocket.receive(datagramPacket);

String strMsg=new String(datagramPacket.getData()).trim();

Log.d("UDP Demo", datagramPacket.getAddress()

.getHostAddress().toString()

+ ":" +strMsg );this.lock.release();

}

} catch (IOException e) {//IOException

e.printStackTrace();

}

} catch (SocketException e) {

e.printStackTrace();

}

}

public static void send(String message) {

message = (message == null ? "Hello IdeasAndroid!" : message);

int server_port = 8904;

Log.d("UDP Demo", "UDP發(fā)送數(shù)據(jù):"+message);

DatagramSocket s = null;

try {

s = new DatagramSocket();

} catch (SocketException e) {

e.printStackTrace();

}

InetAddress local = null;

try {

local = InetAddress.getByName("255.255.255.255");

} catch (UnknownHostException e) {

e.printStackTrace();

}

int msg_length = message.length();

byte[] messageByte = message.getBytes();

DatagramPacket p = new DatagramPacket(messageByte, msg_length, local,

server_port);

try {

s.send(p);

s.close();

} catch (IOException e) {

e.printStackTrace();

}

}

@Override

public void run() {

StartListen();

}

}

希望能幫到你。

本文標題:androidudp,Androidudp組播只進一次
URL地址:http://m.kartarina.com/article14/dseehge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計云服務(wù)器面包屑導航標簽優(yōu)化建站公司營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護公司
主站蜘蛛池模板: 色噜噜综合亚洲av中文无码| 无码人妻精品一区二区三区99不卡 | 九九久久精品无码专区| 国产精品99无码一区二区| 亚洲AV无码国产丝袜在线观看| 免费A级毛片无码无遮挡内射 | 中文字幕无码中文字幕有码| 国产久热精品无码激情| 国产成人无码一区二区三区| 无码一区二区三区中文字幕| 亚洲A∨无码无在线观看| 精品无码人妻一区二区三区不卡| 免费无码成人AV在线播放不卡| 亚洲人成无码网WWW| 在线看片福利无码网址| 无码国产精品一区二区免费式芒果| 免费无码婬片aaa直播表情| 日韩乱码人妻无码中文字幕 | 中文字幕无码毛片免费看| 亚洲av成人中文无码专区| 无码午夜人妻一区二区三区不卡视频| 国产免费久久久久久无码| 国产精品亚洲а∨无码播放不卡 | 亚洲综合无码无在线观看| 久久亚洲AV永久无码精品| 精品无码中文视频在线观看| 婷婷四虎东京热无码群交双飞视频 | 少妇仑乱A毛片无码| 精品爆乳一区二区三区无码av| 伊人久久无码中文字幕| 超清无码一区二区三区| 亚洲AV无码一区二区三区在线观看| 亚洲一区二区无码偷拍| av潮喷大喷水系列无码| 精品亚洲AV无码一区二区三区| 蜜芽亚洲av无码精品色午夜| 人妻丰满熟妞av无码区| 人妻丰满熟妇av无码区不卡| 亚洲精品无码久久毛片波多野吉衣| 久久亚洲AV成人无码| 97久久精品亚洲中文字幕无码|