gpt4 book ai didi

swift - macOS - 使用 `Process` telnet 到一个 IP 地址并传递命令

转载 作者:行者123 更新时间:2023-11-28 11:43:38 26 4
gpt4 key购买 nike

我正在开发一个 macOS 应用程序,我需要使用 telnet 连接到设备并向它发送命令。

(顺便说一句,我正在连接到 Roku)

这是我得到的

func telnet(to host: String, port: String) {
let process = Process()
let pipe = Pipe()

process.executableURL = URL(fileURLWithPath: "/usr/local/bin/telnet")
process.arguments = [host, port]
process.standardOutput = pipe

do {
try process.run()
} catch {
return
}

let resultData = pipe.fileHandleForReading.readDataToEndOfFile()
let result = String (data: resultData, encoding: .utf8) ?? ""
print(result)
}

telnet(to: "10.0.1.11", port: "8080")

问题是流程立即关闭。我需要让进程保持打开状态,并以某种方式向设备发送命令,然后关闭连接。

所以这些是我的问题:

  1. 如何让进程保持运行?
  2. 如何通过 telnet 连接向设备发送命令?

最佳答案

最好的办法是避免使用 Process 并直接从您的应用程序建立网络连接。 (这也将使您摆脱对 /usr/local/bin/telnet 的依赖,这在全新安装的 macOS 中是不存在的。)

SwiftSocket pod 看起来是一个很好的方法。文档中的“客户端套接字示例”似乎涵盖了您的大部分问题。

关于swift - macOS - 使用 `Process` telnet 到一个 IP 地址并传递命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52954947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com