package com.test;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Enumeration;
import android.content.Context;
import android.net.wifi.WifiManager;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.Toast;
public class MulticastServer implements Runnable{
private InetAddress mBroadcastAddr;
private DatagramSocket mSocket;
private DatagramPacket mDatagram;
private byte[] mBuffer = null;
public static final int SERVER_SEND_PORT = 4445;
public static final int CLIENT_RECEIVE_PORT = 4446;
//Seehttp://www.gznc.edu.cn/yxsz/jjglxy/book/Java_api/java/net/MulticastSocket.html
public static final String BROADCAST_IP = "234.5.6.7";
private Thread mThread = null;
private static final String TAG = "MulticastServer";
private Context mContext = null;
public MulticastServer(Context context){
Log.d(TAG, "######## MulticastServer ##########");
mContext = context;
// WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
// WifiManager.MulticastLock multicastLock = wifiManager.createMulticastLock("mydebuginfo");
// multicastLock.acquire();
try {
mSocket = new DatagramSocket(SERVER_SEND_PORT);
} catch (SocketException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
mBroadcastAddr=InetAddress.getByName(BROADCAST_IP);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.d(TAG, "MulticastServer");
mBuffer = getLocalIpAddress().getBytes();
String str = new String(mBuffer);
Log.d(TAG, "mBuffer = " + str);
mDatagram = new DatagramPacket(mBuffer, mBuffer.length, mBroadcastAddr, CLIENT_RECEIVE_PORT);
mThread = new Thread(this);
}
public void startSend() {
Log.d(TAG, "startSend");
SEND_FLAG = true;
mThread.start();
}
public void stopSend() {
SEND_FLAG = false;
}
private boolean SEND_FLAG = true;
@Override
public void run() {
// TODO Auto-generated method stub
while(SEND_FLAG) {
broadcast_data();
}
}
private String sendStr = "";
private void broadcast_data()
{
try {
Log.d(TAG, "broadcast_data");
mSocket.send(mDatagram);
sendStr = new String(mDatagram.getData());
Log.d(TAG, "send ok data = " + sendStr);
mHandler.sendEmptyMessage(TOAST_MSG_SEND);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
Thread.sleep(200);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String getLocalIpAddress() {
try {
for (Enumeration<NetworkInterface> en = NetworkInterface
.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf
.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
return inetAddress.getHostAddress().toString();
}
}
}
} catch (SocketException ex) {
Log.e("WifiPreference IpAddress", ex.toString());
}
return "";
}
private final int TOAST_MSG_SEND = 0x01;
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch(msg.what) {
case TOAST_MSG_SEND:
Toast.makeText(mContext, sendStr, Toast.LENGTH_SHORT).show();
}
}
};
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
TestWLanMsg.rar (41个子文件)
TestWLanMsg
.project 814B
project.properties 360B
proguard.cfg 1KB
src
com
test
TestWLanMsgActivity.java 3KB
MulticastServer.java 4KB
MulticastClient.java 2KB
AndroidManifest.xml 1KB
res
drawable-ldpi
ic_launcher.png 2KB
drawable-hdpi
ic_launcher.png 4KB
drawable-mdpi
ic_launcher.png 3KB
layout
main.xml 2KB
values
strings.xml 182B
assets
gen
com
test
R.java 1KB
default.properties 375B
.classpath 356B
bin
resources.ap_ 11KB
TestWLanMsg.apk 19KB
classes
resources.ap_ 11KB
TestWLanMsg.apk 19KB
com
test
R$layout.class 364B
MulticastServer$1.class 1KB
TestWLanMsgActivity$3.class 1KB
R$drawable.class 377B
R$attr.class 310B
Utils$Print.class 651B
MulticastClient.class 3KB
MulticastServer.class 4KB
TestWLanMsgActivity$2.class 1KB
TestWLanMsgActivity.class 2KB
TestWLanMsgActivity$1.class 1KB
R$id.class 574B
TestWLanMsgActivity$4.class 1KB
Utils.class 3KB
R.class 461B
R$string.class 397B
MulticastClient$1.class 1KB
classes.dex 13KB
res
drawable-ldpi
ic_launcher.png 2KB
drawable-hdpi
ic_launcher.png 4KB
drawable-mdpi
ic_launcher.png 2KB
classes.dex 13KB
共 41 条
- 1
跟随内心
- 粉丝: 349
- 资源: 24
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页