GCDAsyncUdpSocket添加数据发送超时时间

GCDAsyncUdpSocket本身提供的:

- (void)sendData:(NSData *)data toHost:(NSString *)host port:(uint16_t)port withTimeout:(NSTimeInterval)timeout tag:(long)tag
方法写入参数timeout默认是不会根据填写的参数来超时的,需要在这个方法的

GCDAsyncUdpSendPacket *packet = [[GCDAsyncUdpSendPacket
alloc] initWithData:data
timeout:timeout tag:tag];   下面添加这行代码就可以根据输入的参数来超时了

[self
setupSendTimerWithTimeout:timeout];

然后就会调用:

- (void)udpSocket:(GCDAsyncUdpSocket *)sock didNotSendDataWithTag:(long)tag dueToError:(NSError
*)error 委托方法了

还有本人为发送数据可以建立一个类,通过

[self
performSelector:@selector(requestTimeout)
withObject:nil
afterDelay:PACKET_TIMEOUT];

[NSObject
cancelPreviousPerformRequestsWithTarget:self
selector:@selector(requestTimeout)
object:nil];

或者定时器来也可以实现一个超时机制

时间: 2024-10-03 21:57:57

GCDAsyncUdpSocket添加数据发送超时时间的相关文章

接口调试工具ApiPost的发送超时时间设置方法

有部分使用ApiPost的同学反应:发送接口调试时,响应超时时间设置的太短导致接口访问失败,怎么设置呢? 就连百度也有很多人在搜: 今天就来说一说. ApiPost简介: ApiPost是一个支持团队协作,并可直接生成文档的API调试.管理工具.它支持模拟POST.GET.PUT等常见请求,是后台接口开发者或前端.接口测试人员不可多得的工具 . 官网:https://www.apipost.cn/ ApiPost的发送超时时间设置方法 对于老版本的ApiPost,这个超时时间的确是无法设置的.新

MYSQL的数据连接超时时间设置

大规模多线程操作事务的时候,有时候打开一个链接,会进行等待,这时候如果数据库的超时时间设置的过短,就可能会出现,数据链接自动被释放,当然设置过大也不好,慢SQL或其他因素引起的链接过长,导致整个系统被拖慢,甚至挂掉. SO,适当的设置超时时间. 网上查了很多资料,大多数解决方案都写的太复杂,其实只要设置一下等待超时时间就OK了 设置方法: SHOW GLOBAL VARIABLES LIKE '%timeout%'SET GLOBAL wait_timeout=10000

ExtJs中Grid加载数据的超时时间的设置!

myStore =  new Ext.data.JsonStore({ proxy: new Ext.data.HttpProxy({ url: "http://www.example.com/test.php", timeout: 1000000 }), //url: "http://www.example.com/test.php", ... });

Windows 和 Linux下使用socket下载网页页面内容(可设置接收/发送超时)的代码

主要难点在于设置recv()与send()的超时时间,具体要注意的事项,请看代码注释部分,下面是代码: [cpp] view plaincopyprint? #include <stdio.h> #include <sys/types.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <string.h> #ifdef _WIN32   ///

优化nginx[超时时间/fastcgi参数]

8.优化nginx连接参数调整超时时间 1)连接超时可以保护服务器资源.简单的说,连接超时是服务的一种自我管理.自我保护的重要机制. 一般Java程序需要长链接,处理效率高. 2)连接超时带来的问题 ·服务器建立新连接也是要消耗资源的,因此,超时设置的太短而并发太大,就会导致服务器瞬间无法响应用户的请求,导致体验下降: ·企业生产有些PHP程序站点希望设置短连接,因为PHP程序建立连接消耗的资源和连接要少:而Java程序站点一般建立设置长连接,因为Java程序建立连接消耗的资源和时间更多,这是语

HttpClient 4.5版本设置连接超时时间

HttpClient升级到4.5版本后,API有很多变化,HttpClient 4之后,API一直没有太稳定,我感觉4.5版本抽象后,很多API应该快稳定了. 使用HttpClient,一般都需要设置连接超时时间和获取数据超时时间.这两个参数很重要,目的是为了防止访问其他http时,由于超时导致自己的应用受影响. 4.5版本中,这两个参数的设置都抽象到了RequestConfig中,由相应的Builder构建,具体的例子如下: CloseableHttpClient httpclient = H

THttpCli发送和接受数据,代替indy10 TidHttp解决超时时间无效的问题

var StartTime:Integer; //由于Indy10碰到网络异常断掉,Indy超时时间无效的问题,需要安装第三方控件 OverByteICS 解决这个问题.procedure TFormPost.Button2Click(Sender: TObject); //发送overbyte 控件ICS var Data: AnsiString; AJson: TQJson; Strtemp: string; strData: string; postcmd: AnsiString; msR

向后端请求数据 以及像后端发送数据要求(删除数据和添加数据)

删除数据和添加数据只能后端操作 删除数据和添加数据都要用到的html(一)部分 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="../css/bootstrap.min.css"

通过在jquery中添加函数发送ajax请求来加载数据库数据,以json的格式发送到页面

通过在jquery中添加函数发送ajax请求来加载数据库数据,以json的格式发送到页面 从数据库中查询仓库信息,显示在下拉菜单中: 首先,引入js插件,这里使用jquery-1.8.3.js <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.8.3.js"></script> 当页面加载完成后,就应该发送ajax请求到数据库,