0

NSStreamDelegateでソケットが自動的に切断されたときに呼び出されるメソッドを誰かが知ることができますか?ソケットが切断されると、再び- (void)stream:(NSStream *)theStream handleEvent:(NSStreamEvent)streamEventメソッドが呼び出されるため、多くの問題が発生します。誰かがソケットの切断を処理する方法を教えてもらえますか?

4

1 に答える 1

0

呼び出されるメソッドは再び- (void)stream:(NSStream *)theStream handleEvent:(NSStreamEvent)streamEventです。どのようなイベントが発生したかを検出し、適切に対応するのはあなた次第です。

たとえば、Appleのドキュメントから次の例を考えてみましょう。

- (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)streamEvent {
    switch(streamEvent) {
      case NSStreamEventHasBytesAvailable:;
      // whatever...
      break;
      case NSStreamEventEndEncountered:;
        [self processIncomingBytes];
        if (stream == ostream) {
            // When the output stream is closed, no more writing will succeed and
            // will abandon the processing of any pending requests and further
            // incoming bytes.
           [self invalidate];
        }
        break;
      case NSStreamEventErrorOccurred:;
        NSLog(@"HTTPServer stream error: %@", [stream streamError]);
        break;
      default:
        break;
    }
}
于 2012-12-11T07:18:14.563 に答える