首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于iOS,阻止/取消阻塞套接字的FIONBIO值是多少?

对于iOS,阻止/取消阻塞套接字的FIONBIO值是多少?
EN

Stack Overflow用户
提问于 2019-10-29 00:05:13
回答 1查看 328关注 0票数 0

我一直在使用基于Indy TIdHTTP组件的跨平台Websocket客户端,找到了这里

客户机TIdHTTPWebSocketClient内部使用TIdWebSocketMultiReadThread;后者通过使用Indy的GStack IOControl访问ioctl创建非阻塞套接字(InitSpecialEventSocket方法)。

从github下载的代码适用于Windows,但在Android上失败;FIONBIO必须更改为$5421

目前我无法在iOS上进行测试,并且希望知道其他人是否设法让TIdHTTPWebSocketClient在这个平台上工作,以及应该使用FIONBIO的值。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-29 20:17:23

FIONBIO适用于Windows上的ioctlsocket()和POSIX上的ioctl()

在POSIX上,您可以在创建套接字时指定SOCK_NONBLOCK标志,也可以使用fcntl(F_SETFL)在套接字上设置O_NONBLOCK标志。

注意,Indy在TIdStack.NewSocketHandle()TIdStackBSDBase.WSSocket()方法上确实有一个非阻塞的参数,还有一个TIdStackBSDBase.SetBlocking()方法,但是它们目前还没有在非Windows平台上实现(为它们编写了代码,但还没有签入)。

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

https://stackoverflow.com/questions/58599892

复制
相关文章

相似问题

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