局域网中android与android之间的通信

转载 2015年11月20日 16:32:34

客户端:

public class MainActivity extends Activity {  
    /*发送广播端的socket*/  
    private MulticastSocket ms;  
    /*发送广播的按钮*/  
    private Button sendUDPBrocast;  

    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        init();  
    }  

    /*初始化参数*/  
    public void init() {  
        setContentView(R.layout.main);  
        sendUDPBrocast = (Button) findViewById(R.id.send);  
        sendUDPBrocast.setOnClickListener(new SendUDPBrocastListener());  
        try {  
            /*创建socket实例*/  
            ms = new MulticastSocket();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  

    /**  
     * 单击按钮时,发送局域网广播  
     * */  
    class SendUDPBrocastListener implements OnClickListener{  

        @Override  
        public void onClick(View v) {  
            //发送的数据包,局网内的所有地址都可以收到该数据包  
            DatagramPacket dataPacket = null;  
            try {  
                ms.setTimeToLive(4);  
                //将本机的IP(这里可以写动态获取的IP)地址放到数据包里,其实server端接收到数据包后也能获取到发包方的IP的  
                byte[] data = "192.168.1.101".getBytes();  
                //224.0.0.1为广播地址  
                InetAddress address = InetAddress.getByName("224.0.0.1");  
                //这个地方可以输出判断该地址是不是广播类型的地址  
                System.out.println(address.isMulticastAddress());  
                dataPacket = new DatagramPacket(data, data.length, address,  
                        8003);  
                ms.send(dataPacket);  
                ms.close();  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
        }  
    }  
}  

服务器端:

public class MainActivity extends Activity implements Runnable {  
    private MulticastSocket ds;  
    String multicastHost="224.0.0.1";  
    InetAddress receiveAddress;  

    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        try {  
            ds = new MulticastSocket(8003);  
            receiveAddress=InetAddress.getByName(multicastHost);  
            ds.joinGroup(receiveAddress);  
            new Thread(this).start();  
        } catch (Exception e1) {  
            // TODO Auto-generated catch block  
            e1.printStackTrace();  
        }  
    }  

    @Override  
    public void run() {  
        // TODO Auto-generated method stub  
        byte buf[] = new byte[1024];  
        DatagramPacket dp = new DatagramPacket(buf, 1024);  
        while (true) {  
            try {  
                ds.receive(dp);  
                //Toast.makeText(this, new String(buf, 0, dp.getLength()), Toast.LENGTH_LONG);  
                System.out.println("client ip : "+new String(buf, 0, dp.getLength()));  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
        }  
    }  
}  

Android蓝牙设备之间通过UUID通信

  • 2015年02月02日 16:37
  • 2.45MB
  • 下载

详细分析局域网内通过无线实现Android端与PC端TCP/UDP通信的四种情况

Android端与PC端在局域网(可以将两者放在同一个无线路由器下,wifi连接)内通过无线实现通信要分几种具体的情况分析,这里以TCP协议的Socket通信为例来具体说明: 1、Android真...

android端基于socket的局域网内服务器与客户端加密通信

android端基于socket的局域网内服务器与客户端加密通信实现了基本的socket通信(即两台设备,一台用作服务器,一台用作客户端),服务器进行监听,客户端发送加密数据到服务器,服务器进行解密得...

JAVA与android之间通过socket通信

  • 2013年11月17日 21:22
  • 1.18MB
  • 下载

Android中Activity之间通信

  • 2014年10月10日 19:38
  • 50KB
  • 下载

Android基于UDP的局域网聊天通信(有完整Demo)

开头先直接给出: 完美运行的Demo下载地址:http://www.demodashi.com/demo/12057.html 方便各位急用的同学。 1. 开发环境1.1 开发工具 IDE...
  • alanjet
  • alanjet
  • 2017年12月01日 20:05
  • 111
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:局域网中android与android之间的通信
举报原因:
原因补充:

(最多只允许输入30个字)