因此,我正在为我的iphone编写一个应用程序,该应用程序与使用AsyncSocket运行Java应用程序的计算机网络连接。在Java方面,当iPhone连接到服务器时,它应该打印出“OK”。我还在iphone端添加了一个sleep()命令,因此在连接到服务器后,它会发送一些数据,然后休眠5秒钟。但是,在Java方面,所有的数据,包括“OK”和数据都会在睡眠命令后被打印出来。所以它像iPhone一样,直到程序执行结束后才会连接。有人可以帮帮我吗?谢谢...AsyncSocket延迟
0
A
回答
1
AsyncSocket是为了消防和忘记。你不应该等待任何事情发生。本课程的全部目的是在后台完成它的任务,然后在完成后通知您。
如果你需要一个阻塞套接字,那么你应该使用别的东西。
1
你看到这个问题的原因是因为AsyncSocket在runloop上异步执行,但是当你调用sleep()时你阻塞了AsyncSocket试图执行的runloop。
当您调用[asyncSocket connectToHost:...]时,该方法立即返回并且连接尝试在后台继续。委托方法会在建立连接时通知您。但是完成建立连接的代码(在AsyncSocket中)也必须在runloop上运行。
同样,当你调用[asyncSocket writeData:...]时,该方法立即返回。发送这些数据的代码被安排在套接字的runloop上运行。但是,如果您调用sleep(),则会阻止该代码运行。
相关问题
- 1. AsyncSocket延迟发送数据
- 2. netem延迟不延迟
- 3. SQL Express与SQL CE,延迟/延迟
- 4. 在悬停延迟中添加延迟
- 5. 处理环境 - 延迟时间延迟
- 6. 的jquery - 延迟加载 - 设置延迟
- 7. 添加可延迟事件的延迟
- 8. STM32F4 nanosecs延迟
- 9. 绑定延迟
- 10. ASYNCIO延迟StreamReader.read
- 11. setInverval和延迟
- 12. Amazon EC2延迟
- 13. 延迟跳转
- 14. 删除延迟
- 15. Autolayout UIVisualEffectView延迟
- 16. settimeout = setinterval延迟?
- 17. presentViewController延迟
- 18. 与延迟C#
- 19. 延迟例外
- 20. 在延迟
- 21. ASP.NET AJAX延迟
- 22. 与延迟
- 23. 延迟在NetCat
- 24. 延迟与hoverintent
- 25. Gamekit延迟
- 26. Javascript延迟
- 27. NetworkStream.Read延迟.Net
- 28. 与延迟
- 29. 延迟JDBCMessageStore
- 30. 延迟requestAuthorizationToShareTypes