2

asyncsocket を使用して、Objective C とのソケット接続を作成しています。「connectToHost」メソッドを使用してこれを行います。ソケット接続が失敗した場合を処理しようとしています。「connectToHost」は、接続に成功すると「YES」を返し、それ以外の場合は「NO」を返すはずです。何らかの理由で、常に yes が返されます。ホストとして空白の文字列を指定しても、それでも yes が返されます。何かご意見は?

ありがとう、

ロビン

BOOL connectStatus = NO; //used to check if connection attempt succeeded
testSocket = [[AsyncSocket alloc] initWithDelegate: self];
connectStatus = [testSocket connectToHost: @"" onPort: 5000 error: nil];

if(connectStatus == NO)
{
    NSLog(@"Failed to connect to socket ");

}

else {
    NSLog(@"Connected to socket sucessfully, connectStatus = %d", connectStatus);
}
4

1 に答える 1

6

ヘッダーファイルごと:

// Once one of the accept or connect methods are called, the AsyncSocket instance is locked in
// and the other accept/connect methods can't be called without disconnecting the socket first.
// If the attempt fails or times out, these methods either return NO or
// call "onSocket:willDisconnectWithError:" and "onSockedDidDisconnect:".

ソースを確認する場合- すべての神聖なものへの愛のために、オープン ソース ソフトウェアを使用する場合は、ソースを使用してくださいNO–、呼び出しているメソッドは、接続プロセスの開始に失敗した場合にのみ戻ることがわかります. の戻り値YESは、「わかりました、接続しようとしています:

  • onSocket:willDisconnectWithError:「問題が発生した場合は、 と に電話してお知らせしますonSocketDidDisconnect:
  • 「すべてうまくいけば、onSocket:didConnectToHost:port:メッセージが表示されますよね?」

非同期ソケット ライブラリから同期動作を期待しないでください。

于 2011-04-06T22:31:52.100 に答える