【问题标题】:network connections made by my application in iOS?我的应用程序在 iOS 中建立的网络连接?
【发布时间】:2013-05-22 12:10:31
【问题描述】:
我只是想知道我是否可以获得我的应用程序建立的网络连接数(访问我的服务器)?借助此链接running process list
,我可以在后台获取我的应用程序信息(进程名称和 ID)
但是 struct kp_proc 有许多子进程,它们都有自己的子进程。所以我无法猜测哪个特定键会显示我的网络连接列表??任何想法任何人?例如一些过程
【问题讨论】:
标签:
ios
macos
network-programming
【解决方案1】:
您使用什么来提出请求?如果您使用的是本机框架,那么 NSURLConnection 您可以在子类中覆盖这些方法:
+ (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error
+ (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)(NSURLResponse*, NSData*, NSError*))handler
- (void)start
并增加一个全局值以跟踪您在应用程序的生命周期内启动了多少个连接,这可能不是最佳解决方案,因为这不考虑故障,另一种解决方案可能是使用一些分析服务,如 newrelic 或类似的
【解决方案3】:
也许lsof(列出打开的文件)对您有用。它可以显示特定进程的打开连接(确实是打开的套接字),例如。对于进程 99340:
$ lsof -i -a -p 99340