zoukankan      html  css  js  c++  java
  • XE10开发的APP对于苹果IPV6上架要求的处理

    1.服务器必须使用域名.不能使用IP地址
    2.Indy的话,域名加[]
    3.DataSnap的话,Params.Values['CommunicationIPVersion'] :='IP_IPv6';
    4.当前网络环境的判断,如下代码:


    {$IFDEF IOS}
    uses
      StrUtils,
      Posix.NetDB,
      IdStackConsts;
    {$ENDIF}



    function IsSupportIPV6Host_IOS(const Host:String):Boolean;
    {$IFDEF IOS}
    var
      APHostEnt:PHostEnt;
    {$ENDIF}
    begin
      Result:=False;
    {$IFDEF IOS}
      //苹果只要求IOS9以上的系统运行APP支持IPV6
      //IOS版本要大于9
      if TOSVersion.Check(9) then
      begin
        try
          FMX.Types.Log.d('OrangeUI IsSupportIPV6Host_IOS '+Host);
          //如果当前环境是IPV4,APHostEnt为nil
          APHostEnt:=gethostbyname2(MarshaledAString(TEncoding.UTF8.GetBytes(Host)),Id_PF_INET6);
          Result:=(APHostEnt<>nil);
          FMX.Types.Log.d('OrangeUI IsSupportIPV6Host_IOS IsIPV6 '+BoolToStr(Result));
        except
          //但是在IPV4切换到IPV6,程序没有退出的时候,会报错
        end;
      end;
    {$ENDIF}
    end;

    原文http://blog.sina.com.cn/s/blog_44fa172f0102w8sj.html

  • 相关阅读:
    洛谷单元最短路标准版——spfa优化
    airline
    有依赖的背包
    挖地雷
    带分数问题
    子集和问题
    循环比赛日程表
    传纸条
    机器分配
    分组背包
  • 原文地址:https://www.cnblogs.com/zyb2016/p/11376621.html
Copyright © 2011-2022 走看看