/// <summary> /// 文本协议socket连接成功 /// </summary> /// <param name="textSock"></param> static void OnTextSockConnected(TextSock textSock) { LogSystem.Log("OnTextSockConnected"); string strSendInfo = "svrlist" + "" + GlobalData.Version; if (!textSock.Send(strSendInfo)) { LogSystem.LogError("textSock Send failed"); } }
/// <summary> /// 文本协议Socket消息接受,只用于获取服务器列表数据 /// </summary> /// <param name="textSock"></param> /// <param name="args"></param> static void OnTextSockRecieveData(TextSock textSock, ref VarList args) { LogSystem.Log("OnTextSockRecieveData"); int count = args.GetCount(); if (count <= 0) { LogSystem.Log("OnTextSockRecieveData param null"); return; } ///消息头 string strHeader = args.GetString(0); LogSystem.Log("OnTextSockRecieveData", strHeader); if (strHeader.Equals("svrlist")) { ///服务器列表 string strServerName = args.GetString(1); string strMemberAddr = args.GetString(2); int nMemberPort = args.GetInt(3); int iLoad = args.GetInt(4); LogSystem.Log(strServerName, "|", strMemberAddr, "|", nMemberPort, "|", iLoad); textSock.Disconnect(); if (string.IsNullOrEmpty(strServerName)) { mstrMemberAddress = strMemberAddr; mstrMemberPort = nMemberPort; miRecieveMemberType = -2; } else { mstrMemberAddress = strMemberAddr; mstrMemberPort = nMemberPort; miRecieveMemberType = 1; } } else if (strHeader.Equals("version_error")) { miRecieveMemberType = 2; } }
/// <summary> /// 连接服务器 /// </summary> /// <param name="strServerIP">服务器地址</param> /// <param name="iPort">端口</param> /// <param name="strUserName">账号名</param> /// <param name="strPassword">密码</param> /// <returns>连接成败</returns> public static bool ConnectTo(string strServerIP, int iPort, string strUserName, string strPassword, string strValidatestring = "", int iReconnect = 2) { //Debug.Log("ConnectTo::", strUserName, ":", strPassword, ":", strValidatestring); if (!string.IsNullOrEmpty(strServerIP)) { TimerManager.AddTimerRepeat("CheckServerListen", 0.5f, CheckConnectToMember); mstrMemberUserName = strUserName; mstrMemberPassword = strPassword; mstrMemberValidatestring = strValidatestring; miMemberReconnect = iReconnect; TextSock textSock = new TextSock(OnTextSockConnected, OnTextSockConnectFailed, OnTextSockRecieveData); if (textSock != null) { return(textSock.Connect(strServerIP, iPort)); } } else { miRecieveMemberType = 0; ///提示连接失败 TimerManager.ClearTimerWithPrefix("CheckServerListen"); // ///提示连接失败 // SystemWaitPanel.End(); // string strHeader = TextManager.Instance.GetString("UI00031"); // PromptType pt = PoolManager.PopObject<PromptType>(PoolManager.PoolKey.Object_PromptType); // pt.layer = 3; // pt.title = strHeader; // pt.content = TextManager.Instance.GetUIString("UI17999"); // pt.style = PromptType.Style.OK; // GUIManager.ShowView<SystemPrompt>(pt); } return(false); }
/// <summary> /// 文本协议socket连接成功 /// </summary> /// <param name="textSock"></param> static void OnTextSockConnectFailed(TextSock textSock) { LogSystem.Log("OnTextSockConnectFailed"); textSock.Disconnect(); miRecieveMemberType = -1; }