Ios 客户端如何知道服务器正在发送一些X字节? let bufferSize=4096 var buffer=Array(计数:bufferSize,repeatedValue:0) var message=“” 当inputStream.hasbytes可用时{ 设len=inputStream.read(&buffer,maxLength:bufferSize) 如果len0{ //message+=NSString(字节:&buffer,长度:len,编码:NSUTF8StringEncoding)作为!字符串 recivedData.appendBytes(&buffer,长度:bufferSize) message+=NSString(字节:&buffer,长度:len,编码:NSUTF8StringEncoding)作为!字符串 } 如果len==0{ BBLogError(“没有更多可用字节…”) 打破 } }

Ios 客户端如何知道服务器正在发送一些X字节? let bufferSize=4096 var buffer=Array(计数:bufferSize,repeatedValue:0) var message=“” 当inputStream.hasbytes可用时{ 设len=inputStream.read(&buffer,maxLength:bufferSize) 如果len0{ //message+=NSString(字节:&buffer,长度:len,编码:NSUTF8StringEncoding)作为!字符串 recivedData.appendBytes(&buffer,长度:bufferSize) message+=NSString(字节:&buffer,长度:len,编码:NSUTF8StringEncoding)作为!字符串 } 如果len==0{ BBLogError(“没有更多可用字节…”) 打破 } },ios,swift,bonjour,nsstream,Ios,Swift,Bonjour,Nsstream,我的情况:服务器正在发送两个数据包。客户端如何知道服务器正在写入这么多的数据包?您发送的前几个字节需要指定发送的数据量。@rmaddy能否以编程方式显示?或者你可以详细地说,我怎样才能增加尺寸? let bufferSize = 4096 var buffer = Array<UInt8>(count: bufferSize, repeatedValue: 0) var message = ""

我的情况:服务器正在发送两个数据包。客户端如何知道服务器正在写入这么多的数据包?

您发送的前几个字节需要指定发送的数据量。@rmaddy能否以编程方式显示?或者你可以详细地说,我怎样才能增加尺寸?
let bufferSize     = 4096
            var buffer         = Array<UInt8>(count: bufferSize, repeatedValue: 0)
            var message        = ""

            while inputStream.hasBytesAvailable {
                let len = inputStream.read(&buffer, maxLength: bufferSize)
                if len < 0 {
                    BBLogError("error reading stream...")
                    return self.closeStreams()
                }
                if len > 0 {
//                    message += NSString(bytes: &buffer, length: len, encoding: NSUTF8StringEncoding) as! String
                    recivedData.appendBytes(&buffer, length: bufferSize)
                    message += NSString(bytes: &buffer, length: len, encoding: NSUTF8StringEncoding) as! String
                }
                if len == 0 {
                    BBLogError("no more bytes available...")
                    break
                }
            }