/// <summary> /// 出错了 /// </summary> /// <param name="connId"></param> /// <param name="enOperation"></param> /// <param name="errorCode"></param> /// <returns></returns> protected virtual HandleResult OnServerClose(IServer sender, IntPtr connId, SocketOperation enOperation, int errorCode) { if (errorCode == 0) { AddMsg(string.Format(" > [{0},OnServerClose]", connId)); } else { AddMsg(string.Format(" > [{0},OnServerError] -> OP:{1},CODE:{2}", connId, enOperation, errorCode)); } // return HPSocketSdk.HandleResult.Ok; // 获取附加数据 // extra 就是accept里传入的附加数据了 ConnExtraData extra = serverExtra.Get(connId); if (extra == null) { return(HandleResult.Error); } if (extra.FreeType == 0) { // 由client(N)断开连接,释放agent数据 agent.Disconnect(extra.ConnIdForClient); agentExtra.Remove(extra.ConnIdForClient); } serverExtra.Remove(connId); return(HandleResult.Ok); }
/// <summary> /// 客户离开了 /// </summary> /// <param name="dwConnId"></param> /// <returns></returns> protected virtual HandleResult OnServerClose(IntPtr dwConnId) { // 获取附加数据 IntPtr extraPtr = IntPtr.Zero; if (server.GetConnectionExtra(dwConnId, ref extraPtr) == false) { return(HandleResult.Error); } // extra 就是accept里传入的附加数据了 ConnExtraData extra = (ConnExtraData)Marshal.PtrToStructure(extraPtr, typeof(ConnExtraData)); if (extra.FreeType == 0) { // 由client(N)断开连接,释放agent数据 agent.Disconnect(extra.ConnIdForClient); agent.SetConnectionExtra(extra.ConnIdForClient, null); } server.SetConnectionExtra(dwConnId, null); AddMsg(string.Format(" > [{0},OnServerClose]", dwConnId)); return(HandleResult.Ok); }
/// <summary> /// 出错了 /// </summary> /// <param name="connId"></param> /// <param name="enOperation"></param> /// <param name="errorCode"></param> /// <returns></returns> protected virtual HandleResult OnServerClose(IntPtr connId, SocketOperation enOperation, int errorCode) { if (errorCode == 0) { AddMsg(string.Format(" > [{0},OnServerClose]", connId)); } else { AddMsg(string.Format(" > [{0},OnServerError] -> OP:{1},CODE:{2}", connId, enOperation, errorCode)); } // return HPSocketSdk.HandleResult.Ok; // 获取附加数据 IntPtr extraPtr = IntPtr.Zero; if (server.GetConnectionExtra(connId, ref extraPtr) == false) { return(HandleResult.Error); } // extra 就是accept里传入的附加数据了 ConnExtraData extra = (ConnExtraData)Marshal.PtrToStructure(extraPtr, typeof(ConnExtraData)); if (extra.FreeType == 0) { // 由client(N)断开连接,释放agent数据 agent.Disconnect(extra.ConnIdForClient); agent.SetConnectionExtra(extra.ConnIdForClient, null); } server.SetConnectionExtra(connId, null); return(HandleResult.Ok); }