成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

解決 iOS 14.5 UDP 廣播 Sendto 返回 -1

移動開發 iOS
由于項目中發送廣播設置的 hostName 為 255.255.255.255,為了排查決定先發送單播看是否能成功。將單播地址改為 192.168.0.101 之后發現是可以發送成功的,然后在新版本 CocoaAsyncSocket 庫中發送單播也是可以成功的。

[[400268]]

本文轉載自微信公眾號「網羅開發」,作者展菲。轉載本文請聯系網羅開發公眾號。

1. 問題背景

  1. 手機系統升級到 iOS 14.5 之后,UDP 廣播發送失敗
  2. 項目中老版本使用到 socket
  3. 項目中新版本使用 CocoaAsyncSocket
  4. 兩種 UDP 發包方式都會報錯 No route to host

報錯具體內容如下:

  1. sendto: -1 
  2. client: sendto fail, but just ignore it 
  3. No route to host 

2. 問題分析

2.1 sendto 返回 -1 問題排查

我們知道發送廣播 sendto 返回 -1,正常情況sendto 返回值大于 0 。

首先判斷 socket 連接是否建立

  1. self._sck_fd4 = socket(AF_INET,SOCK_DGRAM,0); 
  2. if (DEBUG_ON) { 
  3.      NSLog(@"client init() _sck_fd4=%d",self._sck_fd4); 

self._sck_fd4 打印:

  1. server init(): _sck_fd4=12 

socket 連接正常,接下來判斷數據發包

  1. sendto(self._sck_fd4, bytes, dataLen, 0, (struct sockaddr*)&target_addr, addr_len) = -1 

數據發送失敗

 2.2 增加 NSLocalNetworkUsageDescription 權限

  1. Info.plist 添加 NSLocalNetworkUsageDescription
  2. 發送一次UDP廣播,觸發權限彈框,讓用戶點擊好,允許訪問本地網絡。

發現問題依舊存在

2.3 發送單播排查

由于項目中發送廣播設置的 hostName 為 255.255.255.255,為了排查決定先發送單播看是否能成功。

將單播地址改為 192.168.0.101 之后發現是可以發送成功的,然后在新版本 CocoaAsyncSocket 庫中發送單播也是可以成功的。

UDP 廣播推薦使用 192.168.0.255 ,將廣播地址改了之后,問題解決了,設備可以收到 UDP 廣播數據。

3. 問題解決

由于 192.168.0.255 廣播地址只是當前本地地址,App 中需要動態改變前三段 192.168.0 本地地址,解決方法如下:

  1. NSString *localInetAddr4 = [ESP_NetUtil getLocalIPv4]; 
  2. NSArray *arr = [localInetAddr4 componentsSeparatedByString:@"."]; 
  3. NSString *deviceAddress4 = [NSString stringWithFormat:@"%@.%@.%@.255",arr[0], arr[1], arr[2]]; 

發包過濾,只需要過濾地址最后一段是否為 255

  1. bool isBroadcast = [targetHostName hasSuffix:@"255"]; 

 

責任編輯:武曉燕 來源: 網羅開發
相關推薦

2021-02-18 10:48:14

iOS 14.5隱私安全瀏覽

2021-03-05 11:02:14

iOS 14.5蘋果更新

2010-07-08 14:41:25

UDP數據廣播

2021-03-23 09:41:29

iOS應用系統

2021-04-21 08:19:30

iOS 14.5隱私IDFA

2011-08-25 14:33:48

sendto中文man

2022-11-29 16:29:50

設備開發UDP

2021-05-03 23:19:27

iOS蘋果系統

2021-12-21 21:38:44

蘋果iOSiOS 15

2021-04-30 09:26:47

蘋果 iOS 14.5 應用

2021-04-11 10:31:15

隱私iOS蘋果

2021-02-04 09:09:09

iOS 14.5 Be蘋果解鎖

2021-04-27 16:28:15

蘋果iOS系統

2021-04-27 14:30:08

蘋果iOSiPadOS

2021-04-28 10:24:34

iOS功能隱私

2021-05-10 10:00:23

iOS蘋果系統

2021-04-01 17:43:49

iOS 14.5蘋果Siri

2014-12-15 09:28:54

UDP

2021-04-26 11:02:14

iOSiOS 14.5移動開發

2021-04-28 08:20:29

蘋果 iOS 14.5 應用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色偷偷噜噜噜亚洲男人 | 国产激情三区 | 成人精品一区二区 | 91精品国产91久久综合桃花 | 三区四区在线观看 | 亚洲一区av | 一级毛片免费视频观看 | 亚洲欧洲中文 | 久久国产一区二区三区 | 三级成人片 | 国产精品永久久久久 | 欧美一区二区三区视频 | 国产一区二区三区在线免费 | 操人网站 | 精品久久久久久久久久 | 亚洲一区二区不卡在线观看 | 成人一区在线观看 | 91天堂| 欧美一区二区在线观看视频 | 国产在线精品一区 | 亚洲 自拍 另类 欧美 丝袜 | 97视频成人| 亚洲精品欧美一区二区三区 | 日日草夜夜草 | 国产精品久久久久久久久久 | 中文无码日韩欧 | av中文字幕在线 | 国产一区免费视频 | 精品国产一区二区三区免费 | 国产丝袜一区二区三区免费视频 | 亚洲一区二区精品视频 | 成人网在线观看 | 精品一区久久 | 伊人久久精品一区二区三区 | 日韩欧美一区二区三区免费观看 | 欧美成人aaa级毛片在线视频 | 亚洲 日本 欧美 中文幕 | 免费国产黄| 日韩中文字幕网 | 免费视频久久久久 | 欧美精品片 |