gpt4 book ai didi

ios - 如何在 Swift 中通过 tcp 套接字读取字符串

转载 作者:搜寻专家 更新时间:2023-10-31 19:34:27 25 4
gpt4 key购买 nike

如果我有一个 java tcp 服务器发送一些文本,我如何从 NSInputStream 读取该文本并将其存储在一个字符串中?

这是我的一段代码,但我不太确定如何从这里获取字符串:

NSStream.getStreamsToHostWithName(addr, port: port, inputStream: &inp, outputStream: &out)

let inputStream = inp!
let outputStream = out!
inputStream.open()
outputStream.open()

var readByte :UInt8 = 0
while inputStream.hasBytesAvailable {
inputStream.read(&readByte, maxLength: 1)
}

最佳答案

使用您的代码,您每次在循环内只能读取 1 个字节。如果你需要读取所有数据,你可以这样做,例如:

NSStream.getStreamsToHostWithName(addr, port: port, inputStream: &inputStream, outputStream: &outputStream)
inputStream!.open()
outputStream!.open()

let queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
dispatch_async(queue) {
let bufferSize = 1024
var inputBuffer = Array<UInt8>(count:bufferSize, repeatedValue: 0)
while true {
let bytesRead = self.inputStream!.read(&inputBuffer, maxLength: bufferSize)

// Here get string from byte Array
let responseString = NSString(bytes: inputBuffer, length: inputBuffer.count, encoding: NSUTF8StringEncoding) as! String
println("Data from Stream = \(responseString)")
}
}

这里是这一行:

let responseString = NSString(bytes: inputBuffer, length: inputBuffer.count, encoding: NSUTF8StringEncoding) as! String

从输入字节数组创建String

关于ios - 如何在 Swift 中通过 tcp 套接字读取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33585585/

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