易采站长站为您分析Android编程实现基于局域网udp广播自动建立socket连接的方法,涉及Android使用udp广播实现socket通讯的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
本文实例讲述了Android编程实现基于局域网udp广播自动建立socket连接的方法。,具体如下:
android开发中经常会用到socket通讯。由于项目需要,最近研究了一下这方面的知识。 需求是想通过wifi实现android移动设备和android平台的电视之间的文件传输与控制。 毫无疑问这中间一定需要用到socket来进行通信。今天就两台设备的握手连接方式分享一下吧,该方法只是本人个人想法的实现,仅供参考,如有雷同,不胜荣幸。
要想使用socket进行通讯,就必须知道服务端的IP地址,我使用的是通过udp局网广播来实现局网内服务端的搜寻建立连接。以下是代码实现。
首先是客户端:
- 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();










