iOS udp发送数据
来源:互联网 发布:mac百度搜索推荐 编辑:程序博客网 时间:2024/05/16 17:42
-(void) sendStartCmd:(int)newValue{
sockfd =socket(AF_INET,SOCK_DGRAM,0);
if(sockfd <0) {
NSLog(@"creat client socket fail\n");
return;
}
structsockaddr_in servaddr;
bzero(&servaddr,sizeof(servaddr));
// servaddr.sin_family = AF_INET;
servaddr.sin_port =htons(5131);
servaddr.sin_addr.s_addr =inet_addr("192.168.1.100");
char sendline[10]={'\0','\0'} ;
sprintf(sendline,"%d",newValue);
// sendto(sockfd, sendline, 10, 0, (struct sockaddr *)&servaddr, sizeof(servaddr));
char buffer[256] =" 000";
bzero(buffer,sizeof(buffer));
sprintf(buffer,"%s","000");
int len =sendto(sockfd, buffer,sizeof(buffer),0, (structsockaddr *)&servaddr,sizeof(servaddr));
if (len >0) {
NSLog(@"发送成功");
} else {
fprintf(stderr,"发送失败 failed: %d %s\n",errno,strerror(errno));
}
av_log(NULL,AV_LOG_ERROR,"send info-> %d length:%d \n",newValue,strlen(sendline));
close(sockfd);
}
发送失败 failed: 65 No route to host
iPhone设置网络权限:
iphone6s 上每个app有网络权限控制,在设置最下面的列表里面,选中一个app,右键头里面有选择app的网络权限。
ios踩过的坑:
app需要上网的话,启动时候最好弹出框提示用户添加网络权限。
从iOS10之前带过来的应用应该不会发生类似问题。在iOS10下新下载的应用,有的时候首次打开,会提示网络使用权限,但是有的时候,没有提示就直接可以使用了。并不是这样就没问题了,接下来才是最蛋疼的。有部分概率在下次打开的时候网络权限直接默认禁掉了。
解决方法:
我想到的也是比较傻白甜的方法。查阅了系统api,并没有找到网络权限申请的方法。于是想到了跳转到自己应用下去设置权限。
[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:UIApplicationOpenSettingsURLString]];
不过这个时候又出现另外一个蛋疼的bug。应用不会显示在系统设置的列表中。换句话说,你没有机会去更改他的网络权限。由于不存在于设置列表中,所以执行上面那段代码铁定是崩溃的。
接下来就是解决这个问题了,尝试了各种方法试着让他出现在系统设置列表中。尝试结果发现,当应用请求任何一种系统权限(例如通知,麦克风,定位等)的时候,他会出现在系统列表中。接下来再去执行上面的跳转代码设置应用的网络权限。
权限以及相关设置
我们需要打开info.plist文件添加相应权限的说明,否则程序在iOS10上会出现崩溃。
具体如下图:
注意,添加的时候,末尾不要有空格
麦克风权限:Privacy - Microphone Usage Description 是否允许此App使用你的麦克风?
相机权限: Privacy - Camera Usage Description 是否允许此App使用你的相机?
相册权限: Privacy - Photo Library Usage Description 是否允许此App访问你的媒体资料库?通讯录权限: Privacy - Contacts Usage Description 是否允许此App访问你的通讯录?
蓝牙权限:Privacy - Bluetooth Peripheral Usage Description 是否许允此App使用蓝牙?
语音转文字权限:Privacy - Speech Recognition Usage Description 是否允许此App使用语音识别?
日历权限:Privacy - Calendars Usage Description 是否允许此App使用日历?
定位权限:Privacy - Location When In Use Usage Description 我们需要通过您的地理位置信息获取您周边的相关数据
定位权限: Privacy - Location Always Usage Description 我们需要通过您的地理位置信息获取您周边的相关数据
定位的需要这么写,防止上架被拒。
<!-- 相册 -->
<key>NSPhotoLibraryUsageDescription</key>
<string>App需要您的同意,才能访问相册</string>
<!-- 相机 -->
<key>NSCameraUsageDescription</key>
<string>App需要您的同意,才能访问相机</string>
<!-- 麦克风 -->
<key>NSMicrophoneUsageDescription</key>
<string>App需要您的同意,才能访问麦克风</string>
<!-- 位置 -->
<key>NSLocationUsageDescription</key>
<string>App需要您的同意,才能访问位置</string>
<!-- 在使用期间访问位置 -->
<key>NSLocationWhenInUseUsageDescription</key>
<string>App需要您的同意,才能在使用期间访问位置</string>
<!-- 始终访问位置 -->
<key>NSLocationAlwaysUsageDescription</key>
<string>App需要您的同意,才能始终访问位置</string>
<!-- 日历 -->
<key>NSCalendarsUsageDescription</key>
<string>App需要您的同意,才能访问日历</string>
<!-- 提醒事项 -->
<key>NSRemindersUsageDescription</key>
<string>App需要您的同意,才能访问提醒事项</string>
<!-- 运动与健身 -->
<key>NSMotionUsageDescription</key> <string>App需要您的同意,才能访问运动与健身</string>
<!-- 健康更新 -->
<key>NSHealthUpdateUsageDescription</key>
<string>App需要您的同意,才能访问健康更新 </string>
<!-- 健康分享 -->
<key>NSHealthShareUsageDescription</key>
<string>App需要您的同意,才能访问健康分享</string>
<!-- 蓝牙 -->
<key>NSBluetoothPeripheralUsageDescription</key>
<string>App需要您的同意,才能访问蓝牙</string>
<!-- 媒体资料库 -->
<key>NSAppleMusicUsageDescription</key>
<string>App需要您的同意,才能访问媒体资料库</string>
iOS9 HTTP 不能正常使用的解决办法
今天升级Xcode 7.0 bata
发现网络访问失败。
输出错误信息
The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.
Google后查证,iOS9引入了新特性App Transport Security (ATS)
。详情:App Transport Security (ATS)
新特性要求App内访问的网络必须使用HTTPS
协议。
但是现在公司的项目使用的是HTTP
协议,使用私有加密方式保证数据安全。现在也不能马上改成HTTPS
协议传输。
最终找到以下解决办法:
在Info.plist中添加
NSAppTransportSecurity
类型Dictionary
。在
NSAppTransportSecurity
下添加NSAllowsArbitraryLoads
类型Boolean
,值设为YES
- iOS udp发送数据
- ios开发之发送UDP广播并接收数据
- ios开发之发送UDP广播并接收数据
- ios开发之发送UDP广播并接收数据
- ios开发之发送UDP广播并接收数据
- ios开发之发送UDP广播并接收数据
- udp广播发送数据
- udp发送接收数据
- iOS发送UDP局域网命令
- 关于UDP发送大数据
- STM32F407的UDP发送数据
- UDP发送与接收数据
- udp下接收发送数据
- iOS udp参考数据
- UDP java接受数据与发送数据
- UDP协议接收数据与发送数据
- [C#] 接收和发送UDP数据
- c#中UDP数据发送和接收
- STL 之set容器
- 陌兮大魔王带你深入 学习ArrayList(一)
- Android7.0 启动Launcher流程
- 查看并修改签名证书keystore的密码,alias别名等相关参数
- KMP
- iOS udp发送数据
- Python基础III---函数式编程
- WC2017 酱油记
- @Transactional事务几点注意
- 我的前端生涯的开始
- jmeter+ant之批量运行接口用例
- Gstreamer插件教程1.2—介绍(Introduction):基础(Foundations)
- nginx用socket连接php-fpm
- golang语法学习(一):变量,常量以及数据类型