Android的udp回显测试源码
2016-05-13 18:02
615 查看
private DatagramSocket server = null; private DatagramPacket recvPacket = null; private DatagramPacket sendPacket = null; private byte[] buffer = new byte[1024]; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Runnable r = new Runnable() { public void run() { try { server = new DatagramSocket(1235); recvPacket = new DatagramPacket(buffer, buffer.length); } catch (SocketException e) { e.printStackTrace(); } while (true) { try { server.receive(recvPacket); String dat = new String(recvPacket.getData(), 0, recvPacket.getLength(), "gb2312"); Log.i("chenqy", "recv:" + dat); sendPacket = new DatagramPacket(dat.getBytes(),dat.getBytes().length, recvPacket.getAddress(),recvPacket.getPort()); server.send(sendPacket); } catch (IOException e) { e.printStackTrace(); } } } }; Thread t = new Thread(r); t.setDaemon(true); t.start(); }
总结:用UDP传输数据的时候,将报文转换成ASCII,在接收数据时候,
byte[] request = new byte[8192];
mServerSocket = new DatagramSocket(ServerPort);
DatagramPacket pack = new DatagramPacket(request, request.length);
mServerSocket.receive(pack);
String RecMsg = new String(pack.getData(),0,pack.getLength());
默认的编码格式是unicode编码,
而我传过来的数据是ASCII报文(机内码),字母、符号、数字都是1个byte,汉字是2个byte,
在接收数据的时候,要将这些的报文按照gb2312(机内码)的编码格式重组。
byte[] request = new byte[8192];
mServerSocket = new DatagramSocket(ServerPort);
DatagramPacket pack = new DatagramPacket(request, request.length);
mServerSocket.receive(pack);
String RecMsg = new String(pack.getData(),0,pack.getLength(),"gb2312");
相关文章推荐
- Android 自定义注解框架
- Android SDK 国内镜像
- android测试框架对比(二)
- android BroadCast的发送与接收
- Android中intent传递list或者对象的方法
- Android Studio NDK 开发配置
- android 使用fastjson解析
- 玩转Android studio 插件开发、测试、JCenter库发布(1)
- 对于Picasso的封装和优化方案
- Android自动化测试框架目标
- 对Android中Touch事件分发机制的理解和总结
- Android Studio 打包、生成jks密钥、签名Apk、多渠道打包
- 如何调用Android隐藏API
- 使用Android studio Gradle 实现友盟多渠道打包
- Android Logcat输出为何能自动换行输出的原因以及多\n的作用
- android国际化(多语言)
- android中的Timer与Handler的比较
- Android Service中开启Activity和Alertdialog
- android国际化(多语言)
- Google《Android性能优化》学习笔记