在 swift 中使用简单 Ping (iOS)

2023-12-10

我正在尝试使用 Apple 的类:Simple Ping,但我无法使其正常工作。

当我运行示例 mac os x 项目时,它正在工作:

2015-06-17 00:03:22.569 SimplePing[20386:3133535] ping 192.168.1.102

2015-06-17 00:03:22.569 SimplePing[20386:3133535] #0 已发送

2015-06-17 00:03:22.570 SimplePing[20386:3133535] #0 收到

2015-06-17 00:03:23.570 SimplePing[20386:3133535] #1 已发送

2015-06-17 00:03:23.571 SimplePing[20386:3133535] #1 收到

etc..

但是当我从我的 ios (swift) 应用程序执行此操作时:

let pinger = SimplePing(hostName: "192.168.1.102")
pinger.delegate = self;
pinger.start()

do {
    NSRunLoop.currentRunLoop().runMode(NSDefaultRunLoopMode, beforeDate: NSDate.distantFuture() as! NSDate)
} while(pinger != nil)

不确定是否需要 do..while 循环 - 可能不需要。不管怎样,我也尝试过没有它。

我已将 SimplePingDelegate 添加到我的类中:

    func simplePing(pinger: SimplePing!, didFailToSendPacket packet: NSData!, error: NSError!) {
        println("didFailToSendPacket")
    }

    func simplePing(pinger: SimplePing!, didFailWithError error: NSError!) {
        println("didFailWithError")
    }

    func simplePing(pinger: SimplePing!, didReceivePingResponsePacket packet: NSData!) {
        println("didReceivePingResponsePacket")
    }

    func simplePing(pinger: SimplePing!, didReceiveUnexpectedPacket packet: NSData!) {
        println("didReceiveUnexpectedPacket")
    }

    func simplePing(pinger: SimplePing!, didSendPacket packet: NSData!) {
        println("didSendPacket")
    }

    func simplePing(pinger: SimplePing!, didStartWithAddress address: NSData!) {
        println("didStartWithAddress")
    }

所以它给了我输出:

2015-06-17 00:32:12.368 可用[938:150352] CFHostStartInfoResolution

2015-06-17 00:32:12.374 可用[938:150352] >HostResolveCallback

didStartWithAddress

不调用其他函数。为什么?

顺便提一句。我还尝试将 pinger 移动到类变量中,如下所示:

var pinger: SimplePing?

完全没有区别。

我怎样才能解决这个问题?


不知道为什么这不起作用,但是一旦地址解析,您可以自己调用 ping 方法。

一个变量告诉您​​可以开始 ping:

var canStartPinging = false

调用 ping 的代码:

let pinger = SimplePing(hostName: "www.apple.com")
pinger.delegate = self;
pinger.start()

do {
    if (canStartPinging) {
        pinger.sendPingWithData(nil)
    }
    NSRunLoop.currentRunLoop().runMode(NSDefaultRunLoopMode, beforeDate: NSDate.distantFuture() as! NSDate)
} while(pinger != nil)

The SimplePing在开始 ping 之前要等待的委托方法:

func simplePing(pinger: SimplePing!, didStartWithAddress address: NSData!) {
    println("didStartWithAddress")
    canStartPinging = true
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 swift 中使用简单 Ping (iOS) 的相关文章

  • iOS 5 UIView drawRect 覆盖在设备上不起作用

    我正在准备在 iOS 5 GM 上发布我的 iPhone 应用程序 并遇到了 UIView 的错误 当我在子类上重写 drawRect 方法时 模拟器会显示所需的结果 但当我尝试在实际设备上测试时 drawRect 重写根本没有任何效果 我
  • iOS 无法获取人物图像

    我有两个 tableViewController 第一个有联系人列表 另一张显示详细的人员信息 第一个tableViewController的一段代码 ABAddressBookRef addressBook ABAddressBookCr
  • 在 Pages 文稿中打开文本—Swift

    在我的 Swift 2 应用程序中 用户通过文本字段创建一串文本 然后将其共享给另一个应用程序 现在 我只能将文本共享为 txt 文件 这不提供选项Open In Pages当我打开系统共享对话框时 如何才能让用户可以选择将输入的文本作为
  • Swift try inside Objective-C 块

    我需要创建一个函数foo它接受一个抛出闭包作为参数 我可以使用 Swift 或 ObjC 来实现它 但我需要能够从两者中调用它 像这样 Swift func bar throws func foo block throws gt void
  • Swift:Tableview 在导航栏下方滚动但在状态栏上方滚动?

    我使用以下技巧隐藏了导航栏的阴影 self navigationController navigationBar setBackgroundImage UIImage for default self navigationControlle
  • 如何使用逗号和行分隔符对字符串进行标记

    我正在 Swift 中制作一个简单的 String Tokenizer 就像在 Java 中一样 但这对我来说确实不起作用 我的数据源中每行的末尾用 分隔 数据用逗号分隔 例如 字符串 1 字符串 2 字符串 3 字符串 1 字符串 2 字
  • 在 Swift 中的 For 循环中更改对象的属性

    我创建了一个名为 ShoppingList 的简单结构 struct ShoppingList var shoppingListId NSNumber var title String var groceryItems GroceryIte
  • gestureRecognizer shouldReceiveTouch 持续存在于已释放的视图中导致崩溃

    我有一个相当简单的 UITableView 它在堆栈上推送一个新视图 新视图有一个像这样初始化的gestureRecognizer synthesize swipeGestureLeft void viewDidLoad swipeGest
  • 上下文菜单未在 SwiftUI 中更新

    我正在尝试设置 SwiftUI contextMenu带有一个切换按钮Bool价值 上下文菜单的按钮文本应该在以下情况下更改 Bool切换 但上下文菜单不会更新 有没有办法强制更新上下文菜单 描述问题的示例代码 import SwiftUI
  • Bootstrap 响应式表格在 iOS 设备上无法垂直滚动

    这就是我所拥有的 div class table responsive table class table style background transparent table div 我正在使用以下 bootstrap css 文件 ht
  • 使用javascript以编程方式触发iOS safari中的复制菜单?

    我正在尝试实现一种用户友好的方式 将一些文本从文本输入字段复制到 iOS Safari 上的剪贴板 我知道无法在这个平台上以编程方式完成此操作 但我希望能够尽可能地指导用户体验 在 iOS Safari 上 当用户手动突出显示某些文本时 会
  • “无法取消归档名为 UITableViewController 的元素”

    我一直在按照 构建你的第二个 iOS 应用程序 教程一步步进行 在教程承诺所有错误都会消失之后 我遇到了这个错误 但直到其他错误都出现后 该错误才出现 全部更正 我尝试编译它 错误 The document MainStoryboard i
  • iOS 有 INTERNET 权限吗?

    我在 iOS 设备上的 flutter dio 包上遇到了一个奇怪的问题 我编写了一个向 url 发送 GET 请求的应用程序 Android 上一切正常 但 iOS 上的请求似乎无法通过 没有发生任何错误 什么也没有 我在 Android
  • 使用 PDFOutline 将 TOC 添加到 Swift/Cocoa 中的 PDFDocument

    我正在开发一个小程序 将多个单页 PDF 合并到一个多页 PDF 中 我正在 Swift4 MacOS Cocoa 中工作 但我一生都无法在 Swift 中找到任何类型的示例来创建大纲 仅遍历现有的大纲 我对此非常熟悉 使用对文档的最佳猜测
  • 如何将设备上未保存的图片上传到dropbox帐户?(IOS)

    Dropbox RestClient 仅保存文件 所以我想先将图像保存在本地文件夹中 然后上传它 结果它保存了文件 但它已损坏 NSString localPath NSBundle mainBundle pathForResource I
  • Swift 单元测试 - 如何断言 CGColor 是它应该的样子?

    使用 Xcode V7 2 尝试进行单元测试 需要验证是否已设置正确的颜色 并收到以下消息 Cannot invoke XCTAssertEqual with an argument list of type CGColor CGColor
  • Facebook 登录打开错误的应用程序

    我正在尝试使用 facebook 实现应用程序的登录 但每次我尝试登录时 它都建议打开错误的应用程序 我尝试了一些在这里找到的东西 但没有成功 在 Facebook 的开发者页面上我添加了一个后缀 我的 plist 如下 有谁知道发生了什么
  • 带有自定义字体的 UILabel 错误呈现

    在我的 iPhone 应用程序中 我为所有 UILabel 设置了自定义字体 更准确地说 我对 UILabel 进行了子类化 重写了一个方法 在该方法中设置了自定义字体 然后将 IB 中的所有标签设置为该自定义类 现在的问题是 所有文本都渲
  • 具有隐式授权的 OAuth 应用程序中的客户端模拟

    来自 OAuth 草案 隐式section https datatracker ietf org doc html draft ietf oauth v2 31 section 1 3 2 在隐式授权流程期间发出访问令牌时 授权服务器不对客
  • 从 URL 解析 JSON 最终出现错误 - Swift 5

    我正在尝试用 swift 编写一个函数 从 URL JSON 获取数据 并将其分配给 swift 中的变量 这是函数 func getBikeData guard let url URL string https api citybik e

随机推荐

  • MongoDB 无法确定表达式错误的序列化信息

    我的数据具有以下结构 public enum ParamType Integer 1 String 2 Boolean 3 Double 4 public class Gateway public int id get set public
  • 清除Android的本地通知cordova插件

    I use 适用于 Android 的 Phonegap 本地通知插件显示特定日期的通知 我使用 Cordova 2 2 我使用 cordova 的升级教程修改插件 显示通知 但当我单击它时 应用程序未打开且通知未清除 我怎样才能解决这个问
  • 动态改变自定义seekBar的LinearGradient颜色比率

    我创建了一个带有自定义的搜索栏LinearGradient可绘制的 但是 我希望能够更改每种颜色的渐变比例 这里我使用 3 种颜色 如果满足以下条件 它们会均匀分布positions is null 事实上 我想要的是为每种颜色提供宽度或比
  • 如何从 weblogic 12.2.1 禁用 Jersey

    Weblogic 12 2 1内部有Jersey 2 21 1作为JAX RS 2 0的实现 但我们想使用Jersey 2 5 1或最新版本的Jersey 解决冲突的一般方法是在配置文件中定义类以从应用程序加载类 但是当你升级weblogi
  • 类模板的别名

    考虑一个别名模板 例如A在下面的代码中 现在让B是以下的别名模板A 在下面的代码中 这些类模板用作结构的模板参数C它仅专门用于一种类型名称 A clang std c 11存在于error implicit instantiation of
  • BOM 随机出现在 JSON 回复中

    我正在使用 JSON 和 cURL 实现两个服务器之间的通信 问题是 有时 JSON 回复中的开括号之前会附加 BOM 字节顺序标记 我已经设法修剪它并成功解析 JSON 字符串 但考虑到 JSON 是由我自己的代码生成的 我不知道该 BO
  • 在R中,如何在将对象发送到函数后获取对象的名称?

    我正在寻找相反的get 给定一个对象名称 我希望直接从该对象中提取代表该对象的字符串 简单的例子foo是我正在寻找的函数的占位符 z lt data frame x 1 10 y 1 10 test lt function a mean x
  • 收到 org.postgresql.util.PGobject 类型的对象

    我可以从代码中将几何数据插入数据库 但只能使用 SQL 编辑器 例如 PGAdmin III 查询数据 我无法将几何数据检索回我的代码 每次尝试都会以 已接收类型为 org postgresql util PGobject 的对象 结束 即
  • 如何在 iOS 中以编程方式添加 UITabBarItem 的标识符类型?

    我想在 iOS 中以编程方式添加 UITabBarItem 在界面生成器中 我们可以轻松选择搜索 收藏夹 最近选项卡等标识符 我想知道如何以编程方式添加这些标识符类型 您将其添加为 UIViewController 属性吗 你创建一个UIT
  • 如何捕获 ASP.NET 应用程序中未处理的异常?

    在一次 NET考试中我遇到了这个问题 您可以使用以下哪项来捕获应用程序中未处理的异常 服务器错误 页面错误 应用程序错误 响应错误 错误事件 我知道它的Application Error 但我想知道的是其他的是什么 通过一些谷歌搜索 我发现
  • 无法从我自己的 angularjs api 获取 JSONP 数据

    我正在尝试从我自己的 api 获取数据 但无法成功将数据获取到 vegdata 变量 这是控制器代码 scope filterText null scope vegdata scope init function url http 192
  • WPF TreeView 数据绑定以隐藏/显示展开/折叠图标

    我实现了一个 WPF 按需加载树视图 如中所述this 非常好的 文章 在上述解决方案中 使用虚拟元素来保留展开 图标 树视图项目行为 当用户单击扩展器时 虚拟项目将替换为真实数据 我想通过添加属性来完善模型public bool HasC
  • 哪些 Swing 组件方法是线程安全的?

    根据摇摆教程 一些 Swing 组件方法在 API 规范中被标记为 线程安全 这些可以从任何线程安全地调用 所有其他 Swing 组件方法都必须从事件分派线程调用 忽略此规则的程序可能在大多数情况下都能正常运行 但会出现难以重现的不可预测的
  • 无法创建 /dev/stdout:没有这样的设备或地址

    我想通过节点运行 shell 命令并捕获标准输出的结果 我的脚本在 OSX 上运行良好 但在 Ubuntu 上不行 我已将问题和脚本简化为以下节点脚本 var execSync require child process execSync
  • python中将edgelist导入igraph的格式

    igraph 接受的用于导入 python 的边缘列表格式是什么 包含加权边缘的文本文件应该是什么样子 我以前曾在 R 中使用过 igraph 但在我需要使用的机器上没有安装有效的 R 所以我陷入了 python 困境 我有一个 egeli
  • Python Matplotlib 滑块已绘制但不移动或更新

    我正在尝试绘制一个散点图 其中一个点根据滑块调整的参数移动 我需要参数是坐标列表中的位置 我拥有它 因此可以绘制散点图 并且我可以通过更改位置来手动移动点 但是当我尝试实现滑块时 它会显示 但无法更新绘图 任何帮助都会很棒 到目前为止我所拥
  • Catia VBA 到 .CATScript(针对“集合”类型)

    在我的 VBA 代码中 我使用以下内容 Dim docsToSave As Scripting Dictionary Set docsToSave New Scripting Dictionary Dim toRemove As Colle
  • Matlab 上 Z 归一化 (z-score) 函数的反函数

    在Matlab R2014a中我有信心使用z分数 x 功能 function z mu sigma zscore x flag dim if isequal x z return end if nargin lt 2 flag 0 end
  • 在 JPanel 上添加 .GIF 时显示黑色方块

    我的问题是 当将 GIF 添加到 JPanel 时 它会显示 GIF 的黑色方形背景 在JPanel上添加时的结果 当我使用这一行时会发生这种情况 p2 add loadBar where p2 new JPanel 但是 当我在 JFra
  • 在 swift 中使用简单 Ping (iOS)

    我正在尝试使用 Apple 的类 Simple Ping 但我无法使其正常工作 当我运行示例 mac os x 项目时 它正在工作 2015 06 17 00 03 22 569 SimplePing 20386 3133535 ping