gpt4 book ai didi

iOS 无法将 "Configure one of the app’ s 套接字用于 VoIP 使用“用于后台模式

转载 作者:行者123 更新时间:2023-11-29 13:17:53 26 4
gpt4 key购买 nike

我正在尝试将我的应用程序设置为即使在应用程序暂停时也能收听 tcp 套接字。我按照苹果文档中的描述在 Info.plist 中设置了 voip-background 模式。现在我被困在说:“为 VoIP 使用配置应用程序的套接字之一。”。我正在尝试使用 CFReadStreamSetProperty() 方法来执行此操作,但关键是我如何创建套接字。套接字的创建是通过标准 C 库完成的,如下所示:

int mySock = socket(AF_INET, SOCK_STREAM, 0);

这是在现有库的 .cpp 文件中完成的。这是我尝试为 VoIP 使用配置套接字的方法:

CFStreamCreatePairWithSocket(kCFAllocatorDefault, sock, &readStream, &writeStream);
if(readStream && writeStream)
{
CFReadStreamSetProperty(readStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);
CFWriteStreamSetProperty(writeStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);
}

当我逐步执行它时,它看起来不错,但不幸的是它不起作用。每当应用程序从前台转到后台/挂起时,连接就会丢失,来自服务器的任何输入都会被忽略。我完全不知道套接字的配置是否可以这样完成,也找不到答案。

最佳答案

这是我在这个论坛上的第一篇帖子。但我发现这是有效的。

  1. 在 info.plist 文件中设置 VOIP
  2. CFReadStreamSetProperty(readStream, kCFStreamNetworkServiceType,
    kCFStreamNetworkServiceTypeVoIP);

    CFWriteStreamSetProperty(writeStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);

  3. 使用 TCP 套接字

它不适用于 UDP 套接字。如果我错了,请编辑这篇文章。

关于iOS 无法将 "Configure one of the app’ s 套接字用于 VoIP 使用“用于后台模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15197435/

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