• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ios > 问天问地问自己iostcpsocket操作问题

问天问地问自己iostcpsocket操作问题

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了陈雅森问天问地,问天问地,问天问地问自己,问天问地问心无愧,问天问地问自己歌词等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:问天问地问自己 ios tcp socket操作问题
描述:

我在ios平台用 POSIX socket 去和服务器通信,十分左右 write函数就会返回 -1 写错误,而用 NSStream 就不会出错。请问用 在 ios 下 POSIX socket有什么要注意的。另外有什么比较好的socket通信的库,调用 connect ,write 之后都能返回状态的,而不是通过代理获取状态的这种 tcp socket库?


解决方案1:

write返回-1后,请使用errno获取错误码

解决方案2:

首先声明下你的问题我回答不了。你是搞网络的,应该知道一句简单的为什么返回 -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或第三方库。

友情提示:珍爱生命。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 问天问地问自己iOS有关TextFiled问题
  • 问天问地问自己swift标准库中协议的相关问题
  • 问天问地问自己iostcpsocket操作问题

相关文章

  • 2017-06-05 oc如何获得用Masonry约束好的宽度?
  • 2017-06-05 sd卡格式化数据恢复请问这种格式的数据如何解析?
  • 2017-06-05 xcodearchiveXcode中自带的崩溃数据收集怎么样设置
  • 2017-06-05 如何定义一个类获取JSON数据
  • 2017-06-05 Navicat里,时间显示为一串数字,这是什么存储方式?
  • 2017-06-05 如何将pdf文件转换成word文件将多张照片合成一个pdf文件
  • 2017-06-05 IOS中时间戳转换stringFromDate返回值是null
  • 2017-06-05 ios开发教程iOS的插件化开发用small如何做?
  • 2017-06-05 为什么应用没有设置provisioningprofile的地方了
  • 2018-01-28iOS 设备CPU的架构

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • mySQL遍历字符串字符串宽度计算
    • iOS10相机权限设置了之后用户点击不允许crash
    • 为什么forin不能在按钮触发函数里?
    • ios纯色图片ios渐变色怎么写?
    • swiftxcode8下reactiveCocoa转换出错!
    • 请问您今天要来点兔子吗请问DeviceOne的优势?
    • 为什么我的app,在断网情况下,也能收到苹果返回的deviceToken?
    • SwiftSwift中where从句应该怎么用?
    • ios7通知栏天气小程序怎么推送通知消息到通知栏
    • iOSAPP进入后台锁屏一段时间在打开就闪退

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有