TCP 소켓 연결을 사용하여 데이터를받는 데 NSInputStream을 사용하려고합니다. 서버 측에서 데이터 크기을 보내기 전에 데이터 자체를으로 보내십시오. 아이폰 OS 클라이언트 측에서 나는 데이터의 크기가 완전히 받았는지 확인해야합니다 때문에 NSInputStream에서 처음 4 바이트를 추출 할 필요가 있지만, 나는 그것이 문제가 : 항상 데이터 readBufferLengthRef의 수신 후NSInputStream 버퍼의 크기
...
case NSStreamEvent.HasBytesAvailable:
if (aStream == inputstream){
while (inputstream.hasBytesAvailable){
var readBufferRef = UnsafeMutablePointer<UnsafeMutablePointer<UInt8>>()
var readBufferLengthRef = 0
let readBufferIsAvailable = inputstream.getBuffer(readBufferRef, length: &readBufferLengthRef)
...
}
}
break
을 0과 같습니다.
어떻게 될 수 있습니까?
그리고 NSInputStream 버퍼의 크기는 어떻게 얻을 수 있습니까?
UPD :이
코드 :
코드에서case NSStreamEvent.HasBytesAvailable:
NSLog("HasBytesAvaible")
var buffer = [UInt8](count: 1024, repeatedValue: 0)
if (aStream == inputstream){
while (inputstream.hasBytesAvailable){
var readBufferRef: UnsafeMutablePointer<UInt8> = nil
var readBufferLengthRef = 0
let readBufferIsAvailable = inputstream.getBuffer(&readBufferRef, length: &readBufferLengthRef)
//debugger: readBufferLengthRef = (int)0
}
}
break
귀하의 관심과 답변에 감사드립니다. 불행히도 여전히'readBufferLengthRef'에서 바이트 수를 얻을 수 없습니다. 내 질문의 UPD 섹션에서 전체 코드 세그먼트를 확인할 수 있습니다. 그것이 도움이 될 것 같아요. –
@ don-prog : 미안하지만, 전혀 모른다 ... –
와우 ... 어떻게 될 수 있니? 다른 걸 좀 확인해야할까요? –