版本记录
版本号 | 时间 |
---|---|
V1.0 | 2018.06.09 |
前言
CFNetwork框架访问网络服务并处理网络配置的变化。 建立在网络协议抽象的基础上,可以简化诸如使用BSD套接字,管理HTTP和FTP服务器以及管理Bonjour服务等任务。接下来几篇我们就一起看一下这个框架。感兴趣的可以看上面几篇文章。
1. CFNetwork框架详细解析(一) —— 基本概览
2. CFNetwork框架详细解析(二) —— CFNetwork编程指导之简介(一)
3. CFNetwork框架详细解析(三) —— CFNetwork编程指导之CFNetwork概念(二)
4. CFNetwork框架详细解析(四) —— CFNetwork编程指导之流的处理(三)
5. CFNetwork框架详细解析(五) —— CFNetwork编程指导之与HTTP服务器通信(四)
6. CFNetwork框架详细解析(六) —— CFNetwork编程指导之与验证HTTP服务器通信(五)
7. CFNetwork框架详细解析(七) —— CFNetwork编程指导之使用FTP服务器(六)
Using Network Diagnostics - 使用网络诊断
在许多基于网络的应用程序中,可能会出现与您的应用程序无关的基于网络的错误。但是,大多数用户可能不知道应用程序失败的原因。 CFNetDiagnostics API
使您能够快速简便地帮助用户解决网络问题,而您的工作只需很少的工作。
如果您的应用程序正在使用CFStream
对象,则通过调用函数CFNetDiagnosticCreateWithStreams
来创建网络诊断参考(CFNetDiagnosticRef)
。 CFNetDiagnosticCreateWithStreams
将分配器,读取流和写入流作为参数。如果您的应用程序仅使用读取流或写入流,则应将未使用的参数设置为NULL
。
如果不存在流,您也可以直接从URL创建网络诊断参考。为此,调用CFNetDiagnosticCreateWithURL
函数并将其传递给分配器,并将该URL
作为CFURLRef
。它将返回一个网络诊断参考供您使用。
要通过Network Diagnostic Assistant
来诊断问题,请调用CFNetDiagnosticDiagnoseProblemInteractively
函数并传递网络诊断参考。Listing 6-1
显示了如何在运行循环中的流中使用CFNetDiagnostics
。
Listing 6-1 Using the CFNetDiagnostics API when a stream error occurs
case kCFStreamEventErrorOccurred:
CFNetDiagnosticRef diagRef =
CFNetDiagnosticCreateWithStreams(NULL, stream, NULL);
(void)CFNetDiagnosticDiagnoseProblemInteractively(diagRef);
CFStreamError error = CFReadStreamGetError(stream);
reportError(error);
CFReadStreamClose(stream);
CFRelease(stream);
break;
CFNetworkDiagnostics
还使您能够检索问题的状态,而不是使用Network Diagnostic Assistant
。 这是通过调用CFNetDiagnosticCopyNetworkStatusPassively
来完成的,它返回一个常量值,如kCFNetDiagnosticConnectionUp
或kCFNetDiagnosticConnectionIndeterminate
。
后记
本篇主要讲述了网络诊断相关,感兴趣的给个赞或者关注~~~~