/// <summary>
        /// 连接指定的服务器。
        /// </summary>
        public bool Connect(Server server, AddressFamily addressFamily = AddressFamily.InterNetwork)
        {
            if (server == Server.PServer)
            {
                var ip   = PrefsUtil.GetString(TestLoginRecord.PServerTestLoginIp, null);
                var port = PrefsUtil.GetInt(TestLoginRecord.PServerTestLoginPort, 0);

                if (string.IsNullOrEmpty(ip) || port == 0)
                {
                    return(false);
                }
                var socketFactory = _context.GetSocketFactory();

                _socket = socketFactory.CreateSocket();
                return(_socket.Connect(ip, port, server, addressFamily));
            }

            return(false);
        }
Пример #2
0
 public ISocketFactory GetSocketFactory()
 {
     return(_context.GetSocketFactory());
 }
Пример #3
0
        /// <summary>
        /// 连接指定的服务器。
        /// </summary>
        public bool Connect(Server server, AddressFamily addressFamily = AddressFamily.InterNetwork)
        {
            _networkAddressFamily = addressFamily;

            if (_socket != null)
            {
                _socket.Close();
                _socket = null;
            }

            if (server == Server.Null ||
                server == Server.CServer)
            {
                // 其他的服务器就不用连接了。
                return(false);
            }

            var hServerAddress = _hServerAddress.Read();
            var gServerAddress = _gServerAddress.Read();

            string host = "";
            int    port = 0;

            switch (server)
            {
            case Server.PServer:
                host = GetHost();
                port = GetPort();
                break;

            case Server.HServer:
                host = hServerAddress;
                port = 11122;
                break;

            case Server.GServer:

                if (gServerAddress == null)
                {
                    MyLog.ErrorWithFrame(
                        name,
                        string.Format("GameServer Address Error ")
                        );

                    return(false);
                }

                host = gServerAddress.Ip;
                port = gServerAddress.Port;
                break;

            default:
                break;
            }

            MyLog.InfoWithFrame(
                name,
                string.Format("Connect gate server: {0}:{1}",
                              host,
                              port)
                );

#if UNITY_IOS
            var ios = _context.GetIosSDK();

            if (addressFamily == AddressFamily.InterNetworkV6)
            {
                host = ios.GetIpV6(host);
                MyLog.InfoWithFrame(name, string.Format("convert to ipv6: {0}", host));
            }
#endif

            if (string.IsNullOrEmpty(host))
            {
                return(false);
            }

            var socketFactory = _context.GetSocketFactory();

            _socket = socketFactory.CreateSocket();
            return(_socket.Connect(host, port, server, addressFamily));
        }