尝试从ReadStream读取时接收错误域= kCFErrorDomainCFNetwork Code = 2

the*_*tor 11 iphone cocoa-touch

我试图从一个被CFReadStream反对创建的同步读取CFStreamCreatePairWithSocketToHost.流打开很好,但是当我尝试CFReadStreamRead在循环中调用它时,CFReadStreamRead()返回-1,结果错误是:

Error Domain=kCFErrorDomainCFNetwork Code=2 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error 2.)" UserInfo=0x14a920 {kCFGetAddrInfoFailureKey=8}

当我异步使用这个ReadStream时,我也收到同样的错误 - 我收到的第一个回调就是这个错误.

tc.*_*tc. 8

短篇小说:可能是DNS解析失败.

文档说"在打开其中一个流之前,流不会打开与指定主机的连接",对于kCFGetAddrInfoFailureKey,

查询此键将返回getaddrinfo(3)返回的最后一个错误代码,以响应DNS查找.要解释结果,请在/usr/include/netdb.h中查找错误代码.

netdb.h说

#define EAI_NONAME  8  /* hostname nor servname provided, or not known */
Run Code Online (Sandbox Code Playgroud)

  • @Shailesh:你究竟如何解决DNS故障? (10认同)
  • -1这个答案,因为没有提到如何绕过错误并只解释错误的含义. (2认同)