Windows 데스크톱 애플리케이션에서 iPhone 애플리케이션으로 클라이언트 - 서버 전송을 구현했습니다. NSStream을 폴링 모드로 사용하여 데이터를 전송합니다 (동기식).폴링 모드에서 NSStream으로 애플리케이션 중지 방지
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)urlStr, portNo, &readStream, &writeStream);
inputStream = (NSInputStream *)readStream;
outputStream = (NSOutputStream *)writeStream;
[inputStream open];
[outputStream open];
모두 잘 작동하지만 내가 inexistent 서버 또는 연결이 끊긴 서버 또는 포트 번호/IP 주소를 연결을 시도 할 때 잘못, NSOutputStream 개체의 쓰기 방법, 응용 프로그램 실행을 중지합니다.
const uint8_t *str = (uint8_t *) [strRichiesta cStringUsingEncoding:NSASCIIStringEncoding];
[outputStream write:str maxLength:strlen((char*)str)];
타임 아웃 제어를 삽입하여 관리 할 수 있습니까? 그렇다면 어떻게 할 수 있습니까?
NSInputStream 개체의 READ 메서드에서도 동일한 문제가 발생한다고 생각합니다.
누군가 나를 도와 줄 수 있습니까?
감사하지만 이미 시도했지만 ... 차이가 없습니다. 모든 경우에 streamStatus = 1 및 streamError = 빈 문자열. – Gigi
예, 1의 streamStatus는 사용할 준비가되지 않았다는 것을 의미합니다. 자세한 내용은 내 편집을 참조하십시오. – MechEthan
좋아요, 완벽하게 작동합니다! 고마워요! – Gigi