android udp 设备发现,两台Android设备之间进行UDP连接(使用多播地址)~~求大神指点...
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
首先 發(fā)送端:
package com.example.multicastclient;
import android.support.v7.app.ActionBarActivity;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;
import java.net.UnknownHostException;
import android.content.Context;
import android.content.Intent;
import android.net.wifi.WifiManager;
import android.net.wifi.WifiManager.MulticastLock;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class ClientMainActivity extends ActionBarActivity {
private Button send;
private TextView printout1;
static String destAddressStr = "224.224.224.224";
static int destPortInt = 9998;
static int TTLTime = 4;
int destPort = destPortInt;
int TTL = TTLTime;
MulticastLock multicastLock;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
allowMulticast();
printout1=(TextView) findViewById(R.id.printout1);
findViewById(R.id.send).setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
try {
SendMulticastUdp();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
multicastLock.release();
}
private void allowMulticast() {
// TODO Auto-generated method stub
WifiManager wifiManager=(WifiManager)getSystemService(Context.WIFI_SERVICE);
multicastLock=wifiManager.createMulticastLock("multicast.test");
multicastLock.acquire();
}
protected void SendMulticastUdp() throws Exception {
// TODO Auto-generated method stub
MulticastSocket multiSocket =new MulticastSocket(9998);
InetAddress destAddress =InetAddress.getByName(destAddressStr);
if(!destAddress.isMulticastAddress()){//檢測該地址是否是多播地址
printout1.setText("地址不是多播地址");
}
byte[] sendMSG = "#1029testmsg".getBytes();
DatagramPacket dp = new DatagramPacket(sendMSG, sendMSG.length, destAddress , destPort);
multiSocket.joinGroup(destAddress);
multiSocket.setTimeToLive(TTL);
multiSocket.send(dp);
//multiSocket.close();
}
}
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的android udp 设备发现,两台Android设备之间进行UDP连接(使用多播地址)~~求大神指点...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小兔崽子是什么意思 小兔崽子意思是什么
- 下一篇: android 6.0 dm-verit