安卓通过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();
}
}
}
客户端: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();
}
}
}
相关文章推荐
- 关于ffmpeg解码通过UDP协议传输的视频流遇到fifosize 的问题
- 局域网内通过UDP协议进行传输接受数据——AsyncUdpSocket
- http协议4---GET方式和POST方式获取表单数据举例3(统一方式获取,解决中文乱码问题)
- html 之间如何通过URL传输参数,并解决中文乱码问题
- udp 传输,可解决中文不能正确传输,乱码问题
- 安卓SOCKET通信数据传输乱码问题
- 解决android中客户端和服务器端的数据传输中文乱码问题
- SSM框架 Json前后端数据传输中文乱码问题解决
- Java servlet用Response重定向传输中文数据时,URLEncoder,URLDecoder数据乱码问题
- 通过jsp页面向mysql数据库插入中文数据时乱码问题
- 解决不同字符集数据库数据传输中文乱码问题
- 解决android中客户端和服务器端的数据传输中文乱码问题
- 关于Android使用HttpURLConnection传输含有中文JSON数据的报错、乱码问题
- udp 传输,可解决中文不能正确传输,乱码问题
- ajax中文数据传输乱码问题以及zend framework escape()调用
- 解决 通过JDBC向MySQL插入数据的中文乱码 问题
- 前台通过get访问后台,传输中文乱码问题!
- 通过TCP协议传输数据时出现地址协议不兼容的问题
- UDT协议-基于UDP的可靠数据传输协议
- Ajax按需读取数据生成下级菜单(调试通过,乱码问题没解决)