安卓通过UDP协议传输数据,中文乱码的问题

来源:互联网 发布:天津测绘院待遇知乎 编辑:程序博客网 时间:2024/06/05 05:12

公司最近需要往智能家居方面发展,需要用到UDP协议传输数据,在网上找到了一些资料,但是发现传输中文的时候有乱码的现象,经过我多番捣鼓,终于解决了这个问题,下面贴上关键代码

客户端:

public class UDPClient {    private static final int SERVER_PORT = 6000;    private DatagramSocket dSocket = null;    private String msg;    private String ip;    public UDPClient(String msg, String ip) {        super();        this.msg = msg;        this.ip = ip;    }    public void send() {        try {            dSocket = new DatagramSocket();            byte[] bys = msg.getBytes();            int len = bys.length;            DatagramPacket dp = new DatagramPacket(bys, len, InetAddress.getByName(ip), SERVER_PORT);            dSocket.send(dp);            // }        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        } finally {            dSocket.close();        }    }}
服务端

public class UDPServer implements Runnable {    private static final int PORT = 6000;    private byte[] msg = new byte[2048];    Context context;     public UDPServer(Context context) {        this.context = context;    }     @Override    public void run() {        DatagramSocket s;        try {            s = new DatagramSocket(PORT);            while (true) {                int len = msg.length;                DatagramPacket dp = new DatagramPacket(msg, len);                s.receive(dp);                byte[] byc = dp.getData();                int len2 = dp.getLength();                String ss = new String(byc, 0, len2);                Message msg = Message.obtain();                msg.what = 0x789;                msg.obj = ss;                MainActivity.handler.sendMessage(msg);            }        } catch (Exception e) {            e.printStackTrace();        }    }}


阅读全文
0 0
原创粉丝点击