Я открыл выходной поток от отправителя iPhone, а также реализовал поток ввода (приема) в принимающем iPhone. Я могу подключить оба устройства по той же сети Wi-Fi, используя Multipeer Connectivity, и отправить данные (я преобразовал аудиофайл в формат NSData для отправки его через Outputstream). Но при приеме только часть NSData, которую я отправил Получается. И каждый раз, когда я повторяю выполнение кода, получает различный объем данных. Вот код выходного потока:Аудиофайл частично получен в целевом iPhone от отправителя с использованием Multipeer Connectivity (Swift 2)
let outputStream: NSOutputStream = try! session.startStreamWithName(name, toPeer: session.connectedPeers[0])
print("stream created")
outputStream.delegate = self
outputStream.scheduleInRunLoop(NSRunLoop.mainRunLoop(), forMode: NSDefaultRunLoopMode)
outputStream.open()
print("Before filewritten")
outputStream.write(UnsafePointer<UInt8>(data.bytes), maxLength: data.length)
print("filewritten")
outputStream.close()
И мой Введите код потока:
var bytesRead = 0
var buffer = [UInt8](count: 15000000, repeatedValue: 0)
NSLog("%@", "didReceiveStream")
stream.delegate = self
stream.scheduleInRunLoop(NSRunLoop.mainRunLoop(), forMode: NSDefaultRunLoopMode)
stream.open()
while (stream.hasBytesAvailable){
bytesRead = stream.read(&buffer, maxLength: buffer.count)
print("data fetched"+"\(bytesRead)")
}
stream.close()
Любой помощь относительно причины этого частичного получения данных и последующих изменений в коде, чтобы сформулировать завещание решения быть чрезвычайно оцененным.