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

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

客户端:

 1 public class UDPClient {
 2     private static final int SERVER_PORT = 6000;
 3     private DatagramSocket dSocket = null;
 4     private String msg;
 5     private String ip;
 6 
 7     public UDPClient(String msg, String ip) {
 8         super();
 9         this.msg = msg;
10         this.ip = ip;
11     }
12 
13     public void send() {
14         try {
15             dSocket = new DatagramSocket();
16             byte[] bys = msg.getBytes();
17             int len = bys.length;
18             DatagramPacket dp = new DatagramPacket(bys, len, InetAddress.getByName(ip), SERVER_PORT);
19             dSocket.send(dp);
20             // }
21         } catch (Exception e) {
22             // TODO Auto-generated catch block
23             e.printStackTrace();
24         } finally {
25             dSocket.close();
26         }
27     }
28 }

服务端:

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();
		}
	}
}

  

转载于:https://www.cnblogs.com/eiter/p/6951882.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值