安卓通过UDP协议传输数据,中文乱码的问题
2024-08-25 14:18:38
公司最近需要往智能家居方面发展,需要用到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();
}
}
}
最新文章
- [翻译] Autoac 最佳实践和建议
- JAVA中获得一个月最大天数的方法(备忘)
- AJAX大文件切割上传以及带进度条。
- PHP学习笔记(一)
- Mysql --分区表(6)Hash分区
- Eclipse工作空间相关操作
- 未来十年的十三条思考(FW)
- rdlc 分页操作
- JSON和JSONP区别
- File Templates for web.xml &; web-fragment.xml (Servlet 2.3, 2.4, 2.5 + 3.0)
- Swift 学习笔记(四)
- grid栅格布局
- 规划自己的生活,从使用GTD时间管理法开始
- 多进程和mongo的配合使用
- HDU - 4118 Holiday&;#39;s Accommodation
- SCRUM站立会议模拟
- git 撤销本地修改
- MySQL Crash Course #01# Chapter 1. 2 概念. Primary key
- Loadrunner通过吞吐量计算每个用户需要的带宽
- delphi 手机振动 IOS Android