84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
小伙看你根骨奇佳,潜力无限,来学PHP伐。
首先声明下你的问题我回答不了。你是搞网络的,应该知道一句简单的为什么返回 -1 可能不是个 good question.
其次,尝试回答下你的其它问题,顺便说下我个人的看法。
我是N年刚进一家做社交app的创业公司时,用过POSIX,支持 iOS3.1.3~iOS4 系统。我们经理要我把 iOS 和 Android的 IM 都改掉,掉线、重练、卡死、内存、线程很多问题... 为了跨平台,我就首选了 POSIX 开发,中间出了很多问题,资料又少,经常晚上加班跟服务端交流学习,那套服务端代码是经历过五六年千万级在线的考验沉淀下来的。不过后来还是没坚持下来,最终选择了 CFNetwork ,后来因为 iOS 的升级出过几次bug,再后来直到现在一直用的 GCDAsyncSocket。后来也开发过音视频协议、客户端自建server等,都没有用 POSIX。
说这些其实只是想说你先好好想想为什么要用POSIX,跨平台?自定义协议?如果都不是,强烈建议选择更高级的api或者使用成熟的第三方库。
iOS下的 POSIX 一直坑很多,需要有充足的经验,熟读苹果文档,而且要紧跟系统更新而更新,以及完善的测试。因为选择 POSIX 就意味着要自己处理 IP, 支持 IPv4/IPv6/IPv6-only, 自己处理Wifi/WWAN切换,IP reachability, VPN,线程安全,内存,各种网络异常,一些神奇的网络“假死”等等...iOS明年起强制https,你也要跟着更新。
把苹果官方的网络编程文档看一两遍是必须的。至于你要的socket库,很久前见过有几个移植项目,支持 iOS,现在可能都不维护了,名字我也忘干净了,你在开源代码托管网站和google groups上搜一下。我是最近测试个东西才玩了几天segmentfault,据我现在的观察,在这里找不到你现在及以后要碰到的问题的答案,stackoverflow都未必能找到。学习以及解决问题的途径就是看别人代码,苹果开源代码是一块宝地。
可能我说的严重了,也可能你要的功能没我想象的复杂,还是那句话,除非你必须跨平台或者必须实现自定义协议,而且有足够的时间去填坑,那就接着玩POSIX,否则选用高级api或第三方库。
友情提示:珍爱生命。
write返回-1后,请使用errno获取错误码
errno
首先声明下你的问题我回答不了。你是搞网络的,应该知道一句简单的为什么返回 -1 可能不是个 good question.
其次,尝试回答下你的其它问题,顺便说下我个人的看法。
我是N年刚进一家做社交app的创业公司时,用过POSIX,支持 iOS3.1.3~iOS4 系统。我们经理要我把 iOS 和 Android的 IM 都改掉,掉线、重练、卡死、内存、线程很多问题... 为了跨平台,我就首选了 POSIX 开发,中间出了很多问题,资料又少,经常晚上加班跟服务端交流学习,那套服务端代码是经历过五六年千万级在线的考验沉淀下来的。不过后来还是没坚持下来,最终选择了 CFNetwork ,后来因为 iOS 的升级出过几次bug,再后来直到现在一直用的 GCDAsyncSocket。后来也开发过音视频协议、客户端自建server等,都没有用 POSIX。
说这些其实只是想说你先好好想想为什么要用POSIX,跨平台?自定义协议?如果都不是,强烈建议选择更高级的api或者使用成熟的第三方库。
iOS下的 POSIX 一直坑很多,需要有充足的经验,熟读苹果文档,而且要紧跟系统更新而更新,以及完善的测试。因为选择 POSIX 就意味着要自己处理 IP, 支持 IPv4/IPv6/IPv6-only, 自己处理Wifi/WWAN切换,IP reachability, VPN,线程安全,内存,各种网络异常,一些神奇的网络“假死”等等...iOS明年起强制https,你也要跟着更新。
把苹果官方的网络编程文档看一两遍是必须的。至于你要的socket库,很久前见过有几个移植项目,支持 iOS,现在可能都不维护了,名字我也忘干净了,你在开源代码托管网站和google groups上搜一下。我是最近测试个东西才玩了几天segmentfault,据我现在的观察,在这里找不到你现在及以后要碰到的问题的答案,stackoverflow都未必能找到。学习以及解决问题的途径就是看别人代码,苹果开源代码是一块宝地。
可能我说的严重了,也可能你要的功能没我想象的复杂,还是那句话,除非你必须跨平台或者必须实现自定义协议,而且有足够的时间去填坑,那就接着玩POSIX,否则选用高级api或第三方库。
友情提示:珍爱生命。
write返回-1后,请使用
errno
获取错误码