安卓通过UDP协议传输数据,中文乱码的问题
公司最近需要往智能家居方面发展,需要用到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协议传输数据,中文乱码的问题的更多相关文章
- socket、tcp/ip协议、udp协议
socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. socket起源于Un ...
- 网络编程(基于udp协议的套接字/socketserver模块/进程简介)
一.基于UDP协议的套接字 TCP是建立可靠连接,并且通信双方都可以以流的形式发送数据.相对TCP,UDP则是面向无连接的协议. 使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号,就 ...
- Python进阶----UDP协议使用socket通信,socketserver模块实现并发
Python进阶----UDP协议使用socket通信,socketserver模块实现并发 一丶基于UDP协议的socket 实现UDP协议传输数据 代码如下:
- UDP协议编程
#接收代码 import socket # 使用IPV4协议,使用UDP协议传输数据 s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 绑定端口 ...
- Netty4.x中文教程系列(七)UDP协议
将近快一年时间没有更新Netty的博客.一方面原因是因为项目进度的问题.另外一方面是博主有一段时间去熟悉Unity3D引擎. 本章节主要记录博主自己Netty的UDP协议使用. 1. 构建UDP服务端 ...
- 关于Android与pc通信时中文乱码的分析和解决
初步实现了Android与pc服务器的通信之后,又碰到了传说中令人头疼不已的中文乱码问题.既然出现了乱码,那么原因自然是协议不通了.我们知道eclipse中默认的编码标准是GBK,而安卓程序开发所默认 ...
- 406 UDP协议是面向非连接的协议
HTTP The Definitive Guide Table 3-1. Common HTTP methods Method Description Message body? GET ...
- TCP/UDP协议、理解三次握手四次挥手、Socket
一.什么是socket? 中文名叫套接字,是对底层的 TCP IP UDP 等网络协议进行封装,使得上层的应用程序开发者,不用直接接触这对复杂,丑陋的协议. 在程序员的言论,他就是一个封装好的模块,要 ...
- 聊聊iOS中TCP / UDP 协议
TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于 传输层协议. UDP(User Datagram protoco ...
随机推荐
- How to start a pdf reader from a Linux command line?
Before you do this, you should be in a GOME or KDE environment, then type the following commands to ...
- SGC强制最低128位加密,公钥支持ECC加密算法的SSL证书
Pro SSL证书,验证企业域名所有权和企业身份信息,采用SGC(服务器门控)技术强制128位以上至256位加密,属于企业OV验证级专业版(Pro) SSL证书:即使用户使用低版本浏览器(比如浏览 ...
- CDOJ 889 Battle for Silver
Battle for Silver Time Limit: 2999/999MS (Java/Others) Memory Limit: 65432/65432KB (Java/Others) ...
- 如何修改cnblogs的文本编辑器
我发现从别处复制过来的文本,文字上下间隔太大,所以我点击“html”标签,然后,把html内容复杂到记事本里,用记事本替换的功能,把“<p>”替换为“<p style="p ...
- Master Nginx(8) - Troubleshooting Techniques
Analyzing log files Error log file formats Error log file entry examples Configuring advanced loggin ...
- Python 2 声明变量 输入输出 练习
变量: 代指,用于将具体信息对应到一个值,便于反复使用时方便调用.例如 name = ("斯诺登") 变量声明规则:以字母开头的 字母数字下划线的组合.且不能是python代 ...
- Spring MVC-处理程序映射(Handler Mapping)-Bean名称Url处理程序映射(Bean Name Url Handler Mapping)示例(转载实践)
以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_beannameurlhandlermapping.htm 说明:示例基于Spri ...
- WeX5 IDE 手机移动开发+JAVA +大数据
http://www.wex5.com/wex5/?qb360=wex501=3534 前端技术 HTML,CSS,JavaScript,EasyUI,Jquery,HTML5,CSS3,Jquery ...
- java常见的面试题
1. super()与this()的差别? super和this的差别: 1)super(參数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句) 2)this(參数):调用本类中还有一种形 ...
- Android游戏框架Libgdx使用入门
转载自:http://blog.csdn.net/cping1982/article/details/6176191 Libgdx作者博客:http://www.badlogicgames.com/ ...