UdpHelper.java 2.4 KB
package com.qnbar.switchcontrol;

import android.util.Log;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
/**
 * UdpHelper帮助类
 * 
 */
public class UdpHelper{
    public    Boolean IsThreadDisable = false;//指示监听线程是否终止
    InetAddress mInetAddress;

    public void StartListen()  {
        // UDP服务器监听的端口
        Integer port = 9000;
        // 接收的字节大小,客户端发送的数据不能超过这个大小
        byte[] message = new byte[4096];
        try {
            // 建立Socket连接
            DatagramSocket datagramSocket = new DatagramSocket(port);
            datagramSocket.setBroadcast(true);
            try {
                while (!IsThreadDisable) {
                    // 准备接收数据
                    Log.d("UDP_Demo", "准备接受");

                    DatagramPacket datagramPacket = new DatagramPacket(message,
                            message.length);
                    datagramSocket.receive(datagramPacket);
                    String strMsg=new String(datagramPacket.getData()).trim();
                    Log.d("UDP_Demo", datagramPacket.getAddress().getHostAddress()
                            + ":" +strMsg );
                }
            } 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发送数据:”+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();
        }
    }*/
}