Android编程实现基于局域网udp广播自动建立socket连接的方法

2019-12-10 19:55:17王振洲
  • 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();  
  • }   }  
  • }   } 

    这样一来如果移动设备所连接的局网内存在socket的服务端,服务端就会接收到客户端发出的广播,然后服务端再通过接收到的IP与客户端进行连接进而就可以进行控制及文件的传输了。需要注意的是,udp广播会导致局网传输速度变慢,而且udp为不可靠协议,发出的广播服务端不一定都能够收到,所以在实际情况中需要做很多逻辑处理,比如在线程里发广播直到收到服务端的回应 但如果局网内不存在服务端就会陷入死循环,所以这时就要做限时操作了等等。。。 具体的看个人需求而言了吧。

    希望本文所述对大家Android程序设计有所帮助。


    注:相关教程知识阅读请移步到Android开发频道。