gpt4 book ai didi

iphone - 如何确定无效的 CFSocket

转载 作者:搜寻专家 更新时间:2023-10-30 19:45:28 26 4
gpt4 key购买 nike

如何避免通过 CFSocketSendData 将数据发送到无效的套接字?我尝试用 CFSockerIsValid 确定套接字状态,但是这个方法当另一侧关闭时返回仍然为真。

如何确定套接字是否有效?为了避免错误。

最佳答案

如果另一方关闭套接字,您的回调(您在 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);
}

}

您可以在那里设置一个标志并使用它来知道您的连接已断开,然后当您写入断开的连接时,尝试重新连接或通知用户或任何您想做的事情。

关于iphone - 如何确定无效的 CFSocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/893013/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com