您的位置:首页 > 移动开发 > Android开发

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

2017-10-31 10:30 591 查看
公司最近需要往智能家居方面发展,需要用到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();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  udp android server