4
無効なソケットにCFSocketSendData
を介してデータを送信することを避けるにはどうすればよいですか? ソケットの状態をCFSockerIsValid
で調べようとしましたが、この方法は はもう一方の側が閉じている場合でもtrueを返します。無効なCFSocketを特定する方法
ソケットが有効かどうかはどのように判断できますか?エラーを避けるためです。
無効なソケットにCFSocketSendData
を介してデータを送信することを避けるにはどうすればよいですか? ソケットの状態をCFSockerIsValid
で調べようとしましたが、この方法は はもう一方の側が閉じている場合でもtrueを返します。無効なCFSocketを特定する方法
ソケットが有効かどうかはどのように判断できますか?エラーを避けるためです。
反対側がソケットを閉じると、コールバック(CFSocketCreateで指定した)がコールバックタイプkCFSocketDataCallBackで呼び出されますが、データは空になります。
void SocketCallback (CFSocketRef s, CFSocketCallBackType callbackType,
CFDataRef address, const void *data, void *info)
{
if (callbackType == kCFSocketDataCallBack) {
NSData *nsData = (NSData *)data;
if (nsData.length == 0) {
NSLog(@"got kCFSocketDataCallBack, but with 0 bytes -- connection terminated");
// do whatever you want to do here when connection is dropped
}
} else {
NSLog(@"SocketCallback type %d", callbackType);
}
}
あなたがそこにフラグを設定して、接続が切断されていることを知るためにそれを使用し、あなたがドロップされた接続への書き込みに行くときに、ユーザーを再接続するかを通知するために試みることができるか。このようなことのためのテストあなたがしたいことは何でも。