2012-12-16 3 views
1

서버와 통신하기 위해 스트림 개체 (입력/출력)를 사용하려고합니다. 하지만 잘 할 수 있는지, 아니면 내가 한 일을 적응해야하는지 잘 모르겠습니다. 내 서버 나는이 방법으로 연결 열리는거야와 통신해야하는 각보기에서 순간 스트림 개체를 올바르게 사용하는 방법

:

- (void)initNetworkCommunication { 
    CFReadStreamRef readStream; 
    CFWriteStreamRef writeStream; 
    CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)kServerIp, kServerPort, &readStream, &writeStream); 
    inputStream = (__bridge NSInputStream *)readStream; 
    outputStream = (__bridge NSOutputStream *)writeStream; 

    [inputStream setDelegate:self]; 
    [outputStream setDelegate:self]; 

    [inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; 
    [outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; 

    [inputStream open]; 
    [outputStream open]; 
} 

을 그리고 그것을 할 수있는 올바른 방법인지 나는 모른다 (I 정말 틀림 없음). 또한 내 서버와 통신하기 위해 JSON을 사용하고 있습니다. (다시 알 수없는 경우이를 수행하는 가장 좋은 방법은 모르겠 음)

여러분이 저에게 가르 칠 수 있는지 궁금합니다. 스트림 객체를 사용하는 올바른 방법 :) 나는이 게시물 Manage sockets in iOS with uitabbarcontroller을 찾았지만 실제로 무엇을해야하는지 이해하지 못합니다.

p.s. 스트림을 사용하여 데이터베이스 (예 : app -> giveMeMyNews -> server -> yourNews -> app -> Display)에 대한 쿼리를 수행합니다. 꽤 간단하지만 다시는 내가 정말이 일을하고 있는지 알지 못한다. (

답변

1

스트림은 사용자가 입력 스트림이나 출력 스트림을 가질 수 있도록 작동한다. 전송을 위해 바이트를 수락 할 수있을 때 대리자 메서드 또는 수신 된 새 바이트를 사용할 수있는 경우

내 Bonjour 글을 보면 stream : handleEvent : 메서드를 구현 한 방법을 살펴보고이를 정리해야합니다. : http://www.cocoanetics.com/2012/11/bonjour/

마지막으로 iOS 및/또는 Mac 기기간에 Wi-Fi를 통해 통신하려는 경우 필자는 DTBonjour를 작성하여 객체 전송을 간소화했습니다. 끝 NSObjects, 그들은 plist 또는 json으로 자동적으로 암호로 고쳐 쓰고받는 사람은 해독 한 목표로 그것을 얻는다. http://www.cocoanetics.com/2012/11/and-bonjour-to-you-too/

최소한 코드를 이해하면 프로세스를 이해하는 데 도움이 될 것입니다.

관련 문제