天天看点

杂七杂八APK-UDP传输

UDP传输的关键代码如下:

public class UdpHelper {

    private int port = "12345";

    public UdpHelper(int port) {
        this.port = port;
    }

    //发送,确认和接收端是在同一网络下
    public boolean sendByte(byte[] bytes) {

        DatagramSocket ds = null;
        try {
            ds = new DatagramSocket();
            if (bytes == null) return false;
            DatagramPacket dp = new DatagramPacket(bytes, bytes.length, InetAddress.getByName("255.255.255.255"), port);
            ds.send(dp);
            ds.close();
            return true;
        } catch (SocketException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return false;
    }

    //接收,确认和发送端是在同一网络下
    public byte[] getBytes() {
        byte[] buf = new byte[1024];

        DatagramSocket ds = null;
        DatagramPacket dp = null;
        try {

            ds = new DatagramSocket(port);
            dp = new DatagramPacket(buf, 1024);

            ds.receive(dp);


        } catch (SocketException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (ds != null) {
                ds.close();
            }
        }
        if (dp == null) return null;
        final byte[] netBuf = new byte[dp.getLength()];
        System.arraycopy(dp.getData(), dp.getOffset(), netBuf, 0, netBuf.length);
        return netBuf;
    }
}      

前段时间要做一个基于UDP传输数据的apk,当时只弄了一天多,还没弄完就交接给同事弄其他的去了,所以界面特丑,也没什么其他的功能,就不上图了,有需要就去下载。APK除了实现了数据传输的功能,还用到了滑动退出SwipeBack及本地数据库litepal两个第三方架。

PS:UDP是不安全协议,数据可能会丢失,特别注意需要在同一网络下操作,开始不知道被坑了半天(我这连的是同一热点);进入APP后先点接收,点发送可以测试,UDP支持多方发送和接收。

下载地址:

继续阅读