首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AsyncSocket延迟

AsyncSocket延迟
EN

Stack Overflow用户
提问于 2010-06-25 15:27:51
回答 2查看 343关注 0票数 0

因此,我正在为我的iphone编写一个应用程序,该应用程序通过AsyncSocket连接到运行java应用程序的计算机。在Java端,当iPhone连接到服务器时,它应该输出"Ok“。我还向iPhone端添加了一个sleep()命令,因此在它连接到服务器之后,它会发送一些数据,然后休眠5秒钟。但是,在java端,所有的数据,包括"Ok“和数据都会在sleep命令之后打印出来。所以这就像是iphone直到程序执行结束后才能连接。有人能帮帮我吗?谢谢..。

EN

回答 2

Stack Overflow用户

发布于 2010-06-25 22:16:13

AsyncSocket意味着可以被点燃,然后被遗忘。你不应该等待任何事情发生。这个类的全部目的是在后台做它的事情,然后在它完成时通知你。

如果你需要一个阻塞套接字,那么你应该使用其他的东西。

票数 1
EN

Stack Overflow用户

发布于 2011-05-07 11:12:31

您看到这个问题的原因是因为睡眠在运行循环上异步执行,但是当您调用AsyncSocket ()时,您正在阻塞AsyncSocket试图在其上执行的运行循环。

当您调用asyncSocket connectToHost:...时,该方法立即返回,并且连接尝试在后台继续。当连接建立时,委托方法将通知您。但是完成连接设置的代码(在AsyncSocket中)也必须在运行循环上运行。

类似地,当您调用asyncSocket writeData:...时,该方法立即返回。发送此数据的代码被安排在套接字的runloop上运行。但是,如果调用sleep(),就会阻止该代码运行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3116265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档