可以保持后台,但申请上架是肯定会被拒的

本教程是基于AsyncSocket库的简单开发!

socket机制今天就不说了,毕竟百度上太多太详尽了!

1.先new一个工程;

​2.要写socket的界面遵循<</span>AsyncSocketDelegate>代理方法;​如图

遵循代理方法

3.创建全局的服务发送端;如图

服务端

​4.在viewDidLoad里实例化服务器对象并绑定端口号;

服务端实力方法

​这里需要注意的是:端口最大为65535  其中端口建议设置为5000以上,另外还有一些特殊端口,例如8080端口为视频端口,建议不要占用

5.实现AsyncSocket的代理方法​:

这里可以创建一个可变数组socketArray,用来保存接入的​链接,并保持链接;

下图的-1代表持续监听,如果设置为100,就是100秒后不在监听;​

有链接接入则会走此代理
用于接收新链接发送的消息

注意:iOS的机制是进入后台后程序就会进入休眠状态!这样就导致socket无法进行持续通信,接下来就讲解怎样破了它!

​1.首先:plist中加入

voip

或者配置如下图所示

勾选下面两项    主要勾选这两项就能保持socket连接

2.然后在AppDelegate中的进入后台和返回工程里的代理实现如图的方法

进入后台后和系统借用时间

重新回来后归还时间

接下来在这里写个定时器后就实现了程序在后台持续工作了!

定时器

完成这些后就可以在网页上访问:127.0.0.1:5019 看看控制台的输出了~​

git:https://github.com/SingleTap​

iOS socket保持后台连接 ios9.0 xcode8.0的更多相关文章

  1. IOS Socket 03-建立连接与登录

    1. 搭建python服务器 这里我们用到python服务器Socket Server.如何运行Server?下面介绍 1)通过百度云下载文件 http://pan.baidu.com/s/1i5yb ...

  2. iOS socket原理及连接过程详解

    连接过程图解(度娘的拿过来用)

  3. IOS Socket 04-利用框架CocoaAsyncSocket实现客户端/服务器端

    这篇文章,我们介绍CocoaAsyncSocket框架的使用,主要介绍实现客户端/服务器端代码,相信在网上已经很多这样的文章了,这里做一下自己的总结.这里介绍使用GCD方式 一.客户端 1.下载地址 ...

  4. IOS Socket 02-Socket基础知识

    1. 简介 Socket就是为网络服务提供的一种机制 通信的两端都是Socket 网络通信其实就是Socket间的通信 数据在两个Socket间通过IO传输 2. Socket通信流程图 3. 模拟Q ...

  5. iOS应用中通过设置VOIP模式实现休眠状态下socket的长连接

    如果你的应用程序需要在设备休眠的时候还能够收到服务器端发送的消息,那我们就可以借助VOIP的模式来实现这一需求.但是如果的应用程序并不是正真的VOIP应用,那当你把你的应用提交到AppStore的时候 ...

  6. iOS真机调试步骤(Xcode8.0以上版本)(2015年)

    方法/步骤(转载:http://jingyan.baidu.com/article/22fe7ced20cc073002617f97.html) 获取真机调试的证书,先在本地生成获取证书的文件,找不到 ...

  7. [转] iOS应用中通过设置VOIP模式实现休眠状态下socket的长连接

      转自:http://blog.csdn.net/missautumn/article/details/17102067 如果你的应用程序需要在设备休眠的时候还能够收到服务器端发送的消息,那我们就可 ...

  8. iOS:xCode7版本运行xCode8.0的代码

    怎么在xCode7版本上运行xCode8.0的代码? 1.右键你的"LaunchScreen.sb"文件并用编辑器打开sb 2.删掉"<capability nam ...

  9. iOS Socket 整理以及CocoaAsyncSocket、SRWebSocket源码解析(一)

    写在准备动手的时候: Socket通讯在iOS中也是很常见,自己最近也一直在学习Telegram这个开源项目,Telegram就是在Socket的基础上做的即时通讯,这个相信了解这个开源项目的也都知道 ...

随机推荐

  1. 联想键盘 去掉fn

    这个帖子 很实用 http://iknow.lenovo.com/detail/dc_039949.html 键盘驱动下载地址:http://support1.lenovo.com.cn/lenovo ...

  2. 根据条件动态拼接LinQ的where条件字串

    var items1 = from c in customer == ? c.FirstName == == ? c.LastName == "BBB" : true) selec ...

  3. Linux下如何修改Apache根目录

    创建自己需要更改的新目录,并更改宿主权限为apache用户 chown -R apache:apache /mnt/www   停止Apache服务 service httpd stop 3 修改Ap ...

  4. html文件里引入文件html文件

    导入通用的代码除了使用php外 iframe在很多界面使用起来比较方便 比如说要写导航 在好几个界面都要用这个导航 可以用iframe引用 实例:这个header.html是我写的一个导航界面 在in ...

  5. .NET牛人需要了解的问题[转]

    任何一个使用.NET的人 描述线程与进程的区别? 什么是Windows服务,它的生命周期与标准的EXE程序有什么不同 Windows上的单个进程所能访问的最大内存量是多少?它与系统的最大虚拟内存一样吗 ...

  6. 安装LoadRunner提示缺少vc2005_sp1_with_atl..

    装自动化负载测试工具LoadRunner前,需要预先安装其运行的基础环境.如:安装LoadRunner 11时就需要先安装Micrsoft Visual C++ 2005 SP1.C++ 2008运行 ...

  7. 关于KINECT2 和ROS接口安装的问题

    具体安装过程见此博客 http://www.itdadao.com/articles/c15a450477p0.html 感谢博主. 注意,在我自己的电脑上,最后测试的两条代码执行不了,即:1)ros ...

  8. Html.DropDownList

    //获取直属父级列表 var parents = _MemberEditDTOService.GetParents(); var parentsItems = parents.Result.Selec ...

  9. web移动端资源整(1)

    meta基础知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 <meta name="viewport" content="width=device-wid ...

  10. 多项目开发下的dll文件管理

    阅读目录: DS01:为什么要对生成的dll文件进行管理? DS02:首先介绍以下两个DOS命令 DS03:第一种实现方法(xcopy) DS04:第二种实现方法(attrib) DS05:分享一个有 ...