Android UDP 开发中,在接收数据的时候,有的手机无法阻塞???

原因:

不要在主线程中写相关UDP代码,将代码写到新建线程run函数中。

问题解决代码示例:

     new Thread(){public void run() {// UDP服务器监听的端口Integer port = 8888;// 接收的字节大小,客户端发送的数据不能超过这个大小byte[] buf = new byte[1024];// 建立Socket连接DatagramSocket datagramSocket = null;if(datagramSocket == null){try{datagramSocket = new DatagramSocket(null);datagramSocket.setReuseAddress(true);datagramSocket.bind(new InetSocketAddress(port));}catch (SocketException e){e.printStackTrace();}}try{DatagramPacket datagramPacket = new DatagramPacket(buf, buf.length);try{while (isOnResume){// 准备接收数据datagramSocket.receive(datagramPacket);String result = new String(datagramPacket.getData() , datagramPacket.getOffset() , datagramPacket.getLength());Log.e("TAG", result);
//                      Log.e("UDP Demo", datagramPacket.getAddress().getHostAddress().toString() + ":" + result);}}catch (IOException e){e.printStackTrace();}}catch (Exception e){e.printStackTrace();}};}.start();

另外代码10行到23行的写法也一并解决了bind failed: EADDRINUSE (Address already in use)的错误。!!!!

王月星推荐

UDP 不阻塞的原因相关推荐

  1. linux进程阻塞的原因,释放大块内存时的阻塞问题

    一.前言 在堆上申请和释放内存的性能不高,这应该是常识了,尤其释放大块内存时,耗时更长,甚至会阻塞其他线程.做性能优化时,一般会采用内存池等手段避免频繁的申请和释放内存.本文从内核的角度分析申请和释放 ...

  2. 数据库锁表及阻塞的原因和解决办法

    数据库锁表及阻塞的原因和解决办法 问题说明 当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况.若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性.加锁是 ...

  3. ffmpeg中av_read_frame阻塞的原因与解决方案

    最近用到ffmpeg,想要av_read_frame立即返回,但是看网上的博客,都没有详细的解说,那就自己看源码. 两种方法: 设置回调打断函数和设置超时 超时,但是如果只设置该参数,依然会在av_r ...

  4. UDP主要丢包原因及具体问题分析

    转载:https://www.cnblogs.com/Zhaols/p/6105926.html 一.主要丢包原因 1.接收端处理时间过长导致丢包:调用recv方法接收端收到数据后,处理数据花了一些时 ...

  5. 对话框中WaitForSingleObject等待线程退出导致程序阻塞的原因及解决

    今天在调试程序中发现了程序中出现的一个问题,具体如下: 在对话框中新建一个线程worker thread,当用户点击cancel时,通知该线程函数退出,同时用WaitForSingleObject等待 ...

  6. php udp 非阻塞,使用非阻塞udp读取时丢失消息

    当在两个主机之间使用非阻塞的udp读取时,我有丢失消息的问题.发送者在linux上,读取器在winxp上.python中的这个例子显示了这个问题. 这里有三个脚本用于显示问题. 发送.py:impor ...

  7. java udp 接受阻塞_Java UDP发送与接收

    IP地址?端口号?主机名? 什么是Socket? 什么是UDP? 什么是TCP? UDP和TCP区别? 以上问题请自行百度,有标准解释,此处不再赘述,直接上干货! 实例: 发送端: public cl ...

  8. udp recvfrom阻塞吗_网络编程原理与UDP实现

    本文作者:PsgQ 本文链接:https://www.cnblogs.com/PsgQ/p/14089310.html 如何发送数据包? Q:当应用程序产生数据的时候,需要去构造数据包并发送到网络上去 ...

  9. udp 非阻塞socket报 EAGAIN

    在进行udp压测的时候,有时会报EAGAIN,udp报EAGAIN,有点不可思议,就跟了一下内核源码,发现了两点: 1:udp 确实有缓存,之前在网上看到他人的博客说,udp没有缓存,我看的是2.6. ...

最新文章

  1. 人脸检测流程及正负样本下载
  2. C# HasRows 和 Read的区别
  3. .net后台获取html控件值的2种方法
  4. 转载:使用 GNU Libtool 创建库
  5. 使用ADO.NET查询和操作数据
  6. js原型和原型链_理解JS中的原型和原型链
  7. python调用robotframework api_python+robot framework接口自动化测试
  8. 19、深入理解计算机系统笔记,虚拟存储器,基本原理(1)
  9. linux tcp前景,linux – 为什么在Xen下TCP接受()性能如此糟糕?
  10. 关于陀螺仪 deviceorientation
  11. L1-025 正整数A+B (15 分)—团体程序设计天梯赛
  12. python远程执行shell脚本文件_python SSH模块登录,远程机执行shell命令实例解析
  13. win10 休眠不读u盘_win10电脑不读u盘如何修复
  14. Linux下编写C语言
  15. Java发送附件到邮箱
  16. 使用FileDownloader下载文件(举例版本更新下载apk文件)
  17. 成都艾司博讯:什么是拼多多网店的品质退款率?
  18. 直接寻址、间接寻址、立即数寻址
  19. 中标麒麟运行java,开发知识-中标麒麟安装达梦数据库(DM8)
  20. Tensorflow模型持久化与恢复

热门文章

  1. 注册登录系统python_注的解释|注的意思|汉典“注”字的基本解释
  2. 去除Neg窗口(警告窗口)
  3. IDEA的主题样式20种
  4. 10 款最常用的Sketch在线插件!
  5. Windows桌面出现未激活
  6. 风铃发卡平台源码安装教程(宝塔面板+云服务器轻松搭建)
  7. Python统计学10——时间序列分析自回归模型(ARIMA)
  8. 小米手机 开发app python_python之小米应用商店搜索
  9. window 访问samba提示:无任何网络提供程序接受指定的网络路径
  10. UTM坐标系区号选择