问题描述
我们只需要简单的套接字打开/连接/ GET即可下载ios应用程序的文件。 在几乎所有情况下,这都可以正常工作。除了在4G网络上运行iOS13的设备上。
以下组合都可以:
但是当为iOS13、4g执行socket.connect()时,它只是失败了。 (简化的)代码是:
function Header({ backButton }) {
const histroy = useHistory();
return (
<div className="header">
...
</div>
);
}
对于任何正确的网络,我都可以正确通过connect调用,并且日志类似于:
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <arpa/inet.h>
#include <netinet/tcp.h>
static void setsockaddr4( sockaddr_in *sa,String host,int port ){
memset( sa,sizeof(*sa) );
sa->sin_family=AF_INET;
sa->sin_port=htons( port );
if( host.Length() && host.Length()<1024 ){
// copy to char*
char buf[1024];
for( int i=0;i<host.Length();++i ) buf[i]=host[i];
buf[host.Length()]=0;
NSLog(@" BBSocket::setsockaddr4: hostBuff[%s]",buf);
if( hostent *host=gethostbyname( buf ) )
{
if( char *hostip=inet_ntoa(*(in_addr *)*host->h_addr_list) ){
sa->sin_addr.s_addr=inet_addr( hostip );
NSLog(@" BBSocket::setsockaddr4: sin_addr [%s]",hostip);
}
}
}
}
// ..
int _sock;
_sock=socket( AF_INET,SOCK_STREAM,IPPROTO_TCP );
sockaddr_in sa;
setsockaddr4( &sa,host,port );
printsockaddr4(&sa);
bool ret = connect( _sock,(sockaddr*)&sa,sizeof(sa) )>=0;
if(ret == false)
{
NSLog(@" BBSocket::Connect4. Error: %i",errno);
}
else
{
NSLog(@" BBSocket::Connect4. Success");
}
BBSocket::Open. proto: 1
BBSocket::Open. Socket open OK
BBSocket::setsockaddr4
BBSocket::setsockaddr4: hostBuff[s3.dualstack.eu-west-2.amazonaws.com]
BBSocket::setsockaddr4: sin_addr [52.95.148.124]
BBSocket::printsockaddr4: START -=================-
==- sin_family [2] :: AF_INET[2] AF_INET6[30]
==- sin_port [80] :: netwOrder[20480]
==- sin_addr [52.95.148.124] :: netwOrder[2090098484]
BBSocket::Connect4. Success
所有IP地址都是正确的,只是连接失败并显示为
BBSocket::Open. proto: 1
BBSocket::Open. Socket open END OK
BBSocket::setsockaddr4
BBSocket::setsockaddr4: hostBuff[s3.dualstack.eu-west-2.amazonaws.com]
BBSocket::setsockaddr4: sin_addr [52.95.149.16]
BBSocket::printsockaddr4: START -=================-
==- sin_family [2] :: AF_INET[2] AF_INET6[30]
==- sin_port [80] :: netwOrder[20480]
==- sin_addr [52.95.149.16] :: netwOrder[278224692]
BBSocket::Connect4. Error: 51
对于可能导致这种情况的任何见解, 谢谢Jaime
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)