当前位置: 首页 > news >正文

门户网站与网站的区别婚庆类网站模板

门户网站与网站的区别,婚庆类网站模板,宁波十大口碑最好的装饰公司,app界面设计流程1 现象描述和原理解读 该问题同时存在于android App和Framework系统中。最终效果是在Android系统中直接使用UDP广播无效#xff0c;有意思的是有的android系统可以#xff0c;有的Android 系统不行。然而该部分代码自己在Linux上测试时是有效的#xff0c;代码不变#xf…1 现象描述和原理解读 该问题同时存在于android App和Framework系统中。最终效果是在Android系统中直接使用UDP广播无效有意思的是有的android系统可以有的Android 系统不行。然而该部分代码自己在Linux上测试时是有效的代码不变只是简单的编译移植过来就变得莫名其妙的不行了头还真是大的不行。 UDP广播接收端的关键实现程序如下所示 #include iostream #include string #include cstring #include arpa/inet.h #include sys/socket.h #include unistd.hconst int UDP_PORT 19662;int main() {int socket_fd socket(AF_INET, SOCK_DGRAM, 0);if (socket_fd -1) {std::cerr Failed to create socket std::endl;return 1;}struct sockaddr_in local_address{};local_address.sin_family AF_INET;local_address.sin_addr.s_addr INADDR_ANY;local_address.sin_port htons(UDP_PORT);if (bind(socket_fd, (struct sockaddr*)local_address, sizeof(local_address)) -1) {std::cerr Failed to bind socket std::endl;close(socket_fd);return 1;}std::cout Listening for UDP broadcast on port UDP_PORT std::endl;char buffer[1024];struct sockaddr_in sender_address{};socklen_t sender_address_length sizeof(sender_address);while (true) {ssize_t bytes_received recvfrom(socket_fd, buffer, sizeof(buffer), 0,(struct sockaddr*)sender_address, sender_address_length);if (bytes_received -1) {std::cerr Error receiving data std::endl;close(socket_fd);return 1;}std::string received_message(buffer, bytes_received);std::cout Received message from inet_ntoa(sender_address.sin_addr) : received_message std::endl;}close(socket_fd);return 0; } UDP广播发送端测试程序如下 #include iostream #include string #include cstring #include arpa/inet.h #include sys/socket.h #include unistd.hconst int UDP_PORT 19662; const std::string UDP_BROADCAST_ADDRESS 192.168.1.255;int main() {int socket_fd socket(AF_INET, SOCK_DGRAM, 0);if (socket_fd -1) {std::cerr Failed to create socket std::endl;return 1;}int broadcast_enable 1;if (setsockopt(socket_fd, SOL_SOCKET, SO_BROADCAST, broadcast_enable, sizeof(broadcast_enable)) -1) {std::cerr Failed to enable broadcast std::endl;close(socket_fd);return 1;}struct sockaddr_in target_address{};target_address.sin_family AF_INET;target_address.sin_port htons(UDP_PORT);if (inet_pton(AF_INET, UDP_BROADCAST_ADDRESS.c_str(), target_address.sin_addr) 0) {std::cerr Invalid address std::endl;close(socket_fd);return 1;}std::string message Hello UDP Broadcast!;ssize_t bytes_sent sendto(socket_fd, message.c_str(), message.size(), 0,(struct sockaddr*)target_address, sizeof(target_address));if (bytes_sent -1) {std::cerr Failed to send data std::endl;close(socket_fd);return 1;}std::cout Sent broadcast message: message std::endl;close(socket_fd);return 0; } 在移植到android的过程中实际上是使用android走JNI调用C的方式来使用这里就不详述了。 最后分析发现果然是android的问题。因为在 移动端 Android 系统中使用 UDP 广播可能会引发一些耗电的问题因为 UDP 广播需要 Wi-Fi 连接保持在活动状态以便能够发送和接收数据包。为了避免在应用程序使用 UDP 广播时造成不必要的电池消耗开发者可以考虑使用 Wi-Fi 锁来控制 Wi-Fi 连接的状态。 Wi-Fi 锁是 Android 提供的一种机制允许应用程序在需要时保持 Wi-Fi 连接处于活动状态而不会由于系统的网络管理策略而被关闭或断开连接。使用 Wi-Fi 锁应用程序可以确保在需要进行网络通信时Wi-Fi 连接一直保持活跃从而避免了频繁的连接和断开过程这有助于降低耗电量。 2 修改方案Android All Wi-Fi锁的获取和释放源码如下所示 import android.content.Context; import android.net.wifi.WifiManager; import android.net.wifi.WifiManager.WifiLock;public class WifiLockManager {private WifiLock wifiLock;private WifiManager wifiManager;public WifiLockManager(Context context) {wifiManager (WifiManager) context.getSystemService(Context.WIFI_SERVICE);wifiLock wifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL, MyWifiLock);}//获取锁public void acquireWifiLock() {wifiLock.acquire();}//释放锁public void releaseWifiLock() {if (wifiLock.isHeld()) {wifiLock.release();}} }这样在UDP广播时就不会出现连不上的情况了。实际上Wi-Fi 锁机制从 Android 1.0 版本就存在但是随着不同版本的 Android 系统的发布和演变该机制可能会有一些变化和改进。 具体的行为和影响因 Android 版本和设备厂商而异。在早期的 Android 版本中Wi-Fi 锁主要用于控制 Wi-Fi 连接的休眠策略以防止在连接处于活动状态时进入省电模式。然而随着 Android 版本的更新系统对网络管理策略进行了多次改进旨在更好地平衡性能和电池寿命因此 Wi-Fi 锁的影响和需求可能会因 Android 版本的变化而变化。 另外不同的硬件厂商可能会在其定制的 Android 版本中对网络管理和电池优化策略进行调整。这意味着在某些设备上Wi-Fi 锁的行为可能会受到硬件和厂商定制的影响因此才会出现有的设备能直接广播而有的需要wifi锁这样的情况。
http://www.w-s-a.com/news/165253/

相关文章:

  • 襄阳市做网站 优帮云百度搜索次数统计
  • 自己做视频直播网站盐城做网站多少钱
  • 买个网站服务器多少钱重庆做的好的房产网站
  • 深圳定制建站网站建设推广关键词怎么设置
  • 宝山网站建设 网站外包修改wordpress版权
  • 建立网站的基本步骤新网站多久会被百度收录
  • 软件设计开发流程图廊坊关键词seo排名方案
  • 南山住房和建设局网站网站被k 多久恢复
  • 阿里买域名 电脑做网站做简历哪个网站好
  • 个人网站免费服务器单页网站的域名
  • 网站设计简单讲解小店怎么做网站
  • 校园网站的意义wordpress去除更新
  • 网站开发用python吗常用的网页开发工具有哪些
  • 北京市住房建设投资建设网站做商城网站要哪些流程
  • seo网站改版杭州建设局官网
  • 物流网站建设策划书泰然建设网站
  • 百度做网站的费用采集发布wordpress
  • 网站运维公司有哪些防录屏网站怎么做
  • 昆明做网站seo的网站制作专业
  • 聊城制作手机网站公司wordpress 头条
  • 商城微网站模板一般电商网站做集群
  • winserver2008上用iis发布网站嵊州网站制作
  • 网站内页权重怎么查辽宁建设工程信息网怎么上传业绩
  • 丰都网站建设价格镇江网站制作费用
  • app手机网站建设黄网站建设定制开发服务
  • 百度网盘app下载徐州优化网站建设
  • 附近网站电脑培训班展台设计方案介绍
  • 河南便宜网站建设价格低上海高端室内设计
  • 保险网站有哪些平台wordpress会员vip购买扩展
  • 网站怎么做图片转换广州车陂网站建设公司