【发布时间】:2020-01-05 04:11:57
【问题描述】:
现在使用CoreBlueTooth L2CAP channel 面临一些挑战。为了更好地理解事物是如何工作的。我从 GitHub 获取了 L2CapDemo (master) (https://github.com/paulw11/L2CapDemo) 并尝试使用它。这是我所做的,还有一个问题。
已经用这个替换了 sendTextTapped 函数:
@IBAction func sendTextTapped(_ sender: UIButton) {
guard let ostream = self.channel?.outputStream else {
return
}
var lngStr = "1234567890"
for _ in 1...10 {lngStr = lngStr + lngStr}
let data = lngStr.data(using: .utf8)!
let bytesWritten = data.withUnsafeBytes { ostream.write($0, maxLength: data.count) }
print("bytesWritten = \(bytesWritten)")
print("WR = \(bytesWritten) / \(data.count)")
}
而执行结果是:
bytesWritten = 8192
WR = 8192 / 10240
这让我可以看到在 bytesWritten
现在问题来了。问题是我什么也没看到,剩下的字节似乎被忽略了。 如果我不想忽略这些字节,我想知道该怎么做。关心其余字节的方法是什么?在某些情况下,我们需要传输数万甚至数十万字节。
【问题讨论】:
标签: ios swift core-bluetooth l2cap