iOS 응용 프로그램을 애드혹 네트워크의 프린터에 연결하려고합니다. 연결이 열려 있고 프린터에 무엇인가 보내기 전에 유효한지 확인해야합니다. 어떻게 할 수 있습니까? 이? 현재 다음을 수행하고 있습니다. CFReadStreamRef readStream; CFWriteStreamRef writeStream;소켓 검사 TCP/IP 연결이 있고 시간 제한을 단축합니다.
readStream = NULL;
writeStream = NULL;
CFStreamCreatePairWithSocketToHost(NULL, (__bridge CFStringRef)IPADDRESS, NUM_PORT,NULL ,&writeStream);
if(writeStream)
{
//inputStream = (__bridge NSInputStream *)readStream;
oStream = (__bridge NSOutputStream *)writeStream;
//[iStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[oStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
//[iStream setDelegate:delegate];
[oStream setDelegate:delegate];
//[iStream open];
[oStream open];
}
및
int bytesWritten;
int bytesTotal = [data length];
bytesWritten = [oStream write:[data bytes] maxLength: bytesTotal];
NSLog(@"Bytes Written To Printer : %d",bytesWritten);
하지만 항상에 가고 나는이 소켓에 데이터를 푸시하는 일을 그만 드릴 수 없습니다 있도록 writeStream 결코 null입니다.
~ 편집 - 어쩌면 내가 내 질문에 대해 가장 잘 표현할 수 있습니다. 연결이 없다는 것을 알 때까지 어떻게 30 초 이상 걸릴 수 있습니까?
프린터와 통신 할 때 사용하는 프로토콜은 무엇입니까? – trojanfoe
@trojanfoe 죄송합니다. 무슨 뜻인지 잘 모르겠다. IP 주소와 포트에 NSOutputStream을 통해 프린터로 원시 데이터를 보내는 중이다. –
IPP를 사용하고 있지 않습니까? 프린터가 원시 데이터에 어떻게 반응 할 수 있는지 이해하지 못합니다. – trojanfoe