gpt4 book ai didi

iphone - iPhone EDGE/3G网络端口范围?有人知道吗

转载 作者:行者123 更新时间:2023-12-03 11:56:29 24 4
gpt4 key购买 nike

我试图在我的iPhone应用程序中访问61616,SCReachability代码表明我有一个有效的网络,但是我超时尝试写入61616。有人知道吗:

答:如果iPhone EDGE/3G网络的端口范围有限,或者不允许连接到此端口?

B.如何显式检查对此端口的访问。这是我的“网络可达”代码(从Apple的示例中借用),该代码检查“foo.bar.com”,但未显示如何检查“foo.bar.com:61616”。

任何帮助表示赞赏!

- (BOOL)isDataSourceAvailable{
static BOOL checkNetwork = YES;
BOOL _isDataSourceAvailable = NO;
if (checkNetwork) { // Since checking the reachability of a host can be expensive, cache the result and perform the reachability check once.
checkNetwork = NO;

Boolean success;
const char *host_name = "foo.bar.com";

SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL, host_name);
SCNetworkReachabilityFlags flags;
success = SCNetworkReachabilityGetFlags(reachability, &flags);
_isDataSourceAvailable = success && (flags & kSCNetworkFlagsReachable) && !(flags & kSCNetworkFlagsConnectionRequired);
CFRelease(reachability);
}
return _isDataSourceAvailable;

}

最佳答案

SCNetworkReachability API仅检查地址是否可以路由到。引用文档:

"Reachability" reflects whether a data packet, sent by an application into the network stack, can leave the local computer. Note that reachability does not guarantee that the data packet will actually be received by the host.



这与NAT或端口​​限制无关。路由是基于地址的,而不是基于端口的。因此,您可以发现(通过SCNetworkReachability API)(理论上)是否可以到达计算机的界面。它不会尝试在特定端口上建立连接。

因此,为了确定该服务是否可用,您将不得不尝试自己进行测试。最好在SCNetworkReachability API告诉您可以建立连接时。只需尝试在端口61616上连接到服务器,然后查看是否获得连接或超时即可。正确的超时值和处理在这里至关重要。

关于iphone - iPhone EDGE/3G网络端口范围?有人知道吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/539284/

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