规整代码
This commit is contained in:
parent
3036ef0e05
commit
744c29d60b
@ -1,5 +1,4 @@
|
||||
using System.Net.Sockets;
|
||||
|
||||
namespace HaoYueNet.ClientNetwork
|
||||
{
|
||||
public static class BaseData
|
||||
@ -8,21 +7,6 @@ namespace HaoYueNet.ClientNetwork
|
||||
/// 心跳包数据
|
||||
/// </summary>
|
||||
public static byte[] HeartbeatData = new byte[5] { 0x05, 0x00, 0x00, 0x00, 0x00 };
|
||||
|
||||
public static void writeInt(byte[] buf, int offset, int value)
|
||||
{
|
||||
buf[offset++] = (byte)(255 & value);
|
||||
buf[offset++] = (byte)(255 & value >> 8);
|
||||
buf[offset++] = (byte)(255 & value >> 16);
|
||||
buf[offset++] = (byte)(255 & value >>> 24);
|
||||
}
|
||||
|
||||
public static void writeUInt16(byte[] buf, int offset, int value)
|
||||
{
|
||||
buf[offset++] = (byte)(255 & value);
|
||||
buf[offset++] = (byte)(255 & value >> 8);
|
||||
}
|
||||
|
||||
public static class HunterNet_Heartbeat
|
||||
{
|
||||
public static void SetDataToSocketAsyncEventArgs(SocketAsyncEventArgs myreadEventArgs)
|
||||
@ -30,119 +14,58 @@ namespace HaoYueNet.ClientNetwork
|
||||
myreadEventArgs.SetBuffer(HeartbeatData, 0, HeartbeatData.Length);
|
||||
}
|
||||
}
|
||||
|
||||
public static class HunterNet_S2C
|
||||
{
|
||||
public static void SetDataToSocketAsyncEventArgs(SocketAsyncEventArgs myreadEventArgs, UInt16 CmdID, UInt16 Error, byte[] AddonBytes_Data)
|
||||
{
|
||||
myreadEventArgs.SetBuffer(CreatePkgData(CmdID, Error, AddonBytes_Data));
|
||||
}
|
||||
|
||||
public static byte[] CreatePkgData(UInt16 CmdID, UInt16 Error, byte[] AddonBytes_Data)
|
||||
{
|
||||
//用Buffer.BlockCopy拷贝
|
||||
//包长度
|
||||
int AllLenght = 4 + 2 + 2 + AddonBytes_Data.Length;
|
||||
byte[] BufferData = new byte[AllLenght];
|
||||
|
||||
//包长度
|
||||
writeInt(BufferData, 0, AllLenght);
|
||||
|
||||
Buffer.BlockCopy(BitConverter.GetBytes(AllLenght), 0, BufferData, 0, sizeof(int));
|
||||
//CMDID
|
||||
writeUInt16(BufferData, 4, CmdID);
|
||||
|
||||
//Error
|
||||
writeUInt16(BufferData, 4 + 2, Error);
|
||||
|
||||
Buffer.BlockCopy(BitConverter.GetBytes(CmdID), 0, BufferData, 4, sizeof(UInt16));
|
||||
//ErrID
|
||||
Buffer.BlockCopy(BitConverter.GetBytes(Error), 0, BufferData, 4 + 2, sizeof(UInt16));
|
||||
//DATA
|
||||
Buffer.BlockCopy(AddonBytes_Data, 0, BufferData, 4 + 2 + 2, AddonBytes_Data.Length);
|
||||
|
||||
return BufferData;
|
||||
}
|
||||
|
||||
public static void AnalysisPkgData(Span<byte> srcdata, out UInt16 CmdID, out UInt16 Error, out byte[] data)
|
||||
{
|
||||
//CmdID = BitConverter.ToUInt16(srcdata, 0);
|
||||
//Error = BitConverter.ToUInt16(srcdata, 2);
|
||||
//data = new byte[srcdata.Length - 2 - 2];
|
||||
//Array.Copy(srcdata, 4, data, 0, data.Length);
|
||||
|
||||
//CmdID = BitConverter.ToUInt16(srcdata, 0);
|
||||
//Error = BitConverter.ToUInt16(srcdata, 2);
|
||||
//Span<byte> span_srcdata = srcdata;
|
||||
//data = span_srcdata.Slice(2 + 2).ToArray();
|
||||
|
||||
CmdID = BitConverter.ToUInt16(srcdata.Slice(0, 2));
|
||||
Error = BitConverter.ToUInt16(srcdata.Slice(2, 2));
|
||||
data = srcdata.Slice(2 + 2).ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
public static class HunterNet_C2S
|
||||
{
|
||||
public static void SetDataToSocketAsyncEventArgs(SocketAsyncEventArgs myreadEventArgs, UInt16 CmdID, byte[] AddonBytes_Data)
|
||||
{
|
||||
myreadEventArgs.SetBuffer(CreatePkgData(CmdID, AddonBytes_Data));
|
||||
}
|
||||
|
||||
public static byte[] CreatePkgData(UInt16 CmdID, byte[] AddonBytes_Data)
|
||||
{
|
||||
//byte[] AddonBytes_CmdID = BitConverter.GetBytes(CmdID);
|
||||
//int AllLenght = AddonBytes_CmdID.Length + AddonBytes_Data.Length + 4;
|
||||
//int LastIndex = 0;
|
||||
////包长度
|
||||
//byte[] AddonBytes_Lenght = BitConverter.GetBytes(AllLenght);
|
||||
|
||||
//byte[] BufferData = new byte[AllLenght];
|
||||
|
||||
////包长度
|
||||
//AddonBytes_Lenght.CopyTo(BufferData, LastIndex);
|
||||
//LastIndex += AddonBytes_Lenght.Length;
|
||||
|
||||
////CMDID
|
||||
//AddonBytes_CmdID.CopyTo(BufferData, LastIndex);
|
||||
//LastIndex += AddonBytes_CmdID.Length;
|
||||
|
||||
////DATA
|
||||
//AddonBytes_Data.CopyTo(BufferData, LastIndex);
|
||||
//LastIndex += AddonBytes_Data.Length;
|
||||
|
||||
//myreadEventArgs.SetBuffer(BufferData, 0, BufferData.Length);
|
||||
//return BufferData;
|
||||
|
||||
//用Buffer.BlockCopy拷贝
|
||||
|
||||
byte[] AddonBytes_CmdID = BitConverter.GetBytes(CmdID);
|
||||
int AllLenght = AddonBytes_CmdID.Length + AddonBytes_Data.Length + 4;
|
||||
int LastIndex = 0;
|
||||
//包长度
|
||||
byte[] AddonBytes_Lenght = BitConverter.GetBytes(AllLenght);
|
||||
|
||||
byte[] BufferData = new byte[AllLenght];
|
||||
//包长度
|
||||
Buffer.BlockCopy(AddonBytes_Lenght, 0, BufferData, LastIndex, AddonBytes_Lenght.Length);
|
||||
LastIndex += AddonBytes_Lenght.Length;
|
||||
|
||||
Buffer.BlockCopy(AddonBytes_Lenght, 0, BufferData, 0, AddonBytes_Lenght.Length);
|
||||
//CMDID
|
||||
Buffer.BlockCopy(AddonBytes_CmdID, 0, BufferData, LastIndex, AddonBytes_CmdID.Length);
|
||||
LastIndex += AddonBytes_CmdID.Length;
|
||||
|
||||
Buffer.BlockCopy(AddonBytes_CmdID, 0, BufferData, 4, AddonBytes_CmdID.Length);
|
||||
//DATA
|
||||
Buffer.BlockCopy(AddonBytes_Data, 0, BufferData, LastIndex, AddonBytes_Data.Length);
|
||||
LastIndex += AddonBytes_Data.Length;
|
||||
Buffer.BlockCopy(AddonBytes_Data, 0, BufferData, 4 + 2, AddonBytes_Data.Length);
|
||||
return BufferData;
|
||||
}
|
||||
|
||||
public static void AnalysisPkgData(Span<byte> srcdata, out UInt16 CmdID, out byte[] data)
|
||||
{
|
||||
//data = new byte[srcdata.Length - 2];
|
||||
//CmdID = BitConverter.ToUInt16(srcdata, 0);
|
||||
//Array.Copy(srcdata, 2, data, 0, data.Length);
|
||||
|
||||
//CmdID = BitConverter.ToUInt16(srcdata, 0);
|
||||
//Span<byte> span_srcdata = srcdata;
|
||||
//data = span_srcdata.Slice(2).ToArray();
|
||||
|
||||
CmdID = BitConverter.ToUInt16(srcdata.Slice(0, 2));
|
||||
data = srcdata.Slice(2).ToArray();
|
||||
}
|
||||
|
@ -227,7 +227,11 @@ namespace HaoYueNet.ClientNetwork.IOCPMode
|
||||
#region Token管理
|
||||
public AsyncUserToken GetAsyncUserTokenForSocket(Socket sk)
|
||||
{
|
||||
return _DictSocketAsyncUserToken.ContainsKey(sk) ? _DictSocketAsyncUserToken[sk] : null;
|
||||
AsyncUserToken result;
|
||||
if (_DictSocketAsyncUserToken.TryGetValue(sk, out result))
|
||||
return result;
|
||||
return null;
|
||||
//return _DictSocketAsyncUserToken.ContainsKey(sk) ? _DictSocketAsyncUserToken[sk] : null;
|
||||
}
|
||||
void AddUserToken(AsyncUserToken userToken)
|
||||
{
|
||||
@ -283,7 +287,6 @@ namespace HaoYueNet.ClientNetwork.IOCPMode
|
||||
|
||||
|
||||
#region 连接
|
||||
|
||||
public void StartConnect(string ip, int port, Socket socket, SocketAsyncEventArgs connectEventArg = null)
|
||||
{
|
||||
if (connectEventArg == null)
|
||||
|
@ -9,7 +9,6 @@ namespace HaoYueNet.ClientNetwork
|
||||
{
|
||||
private Socket client;
|
||||
|
||||
|
||||
////响应倒计时计数最大值
|
||||
//private static int MaxRevIndexNum = 6;
|
||||
|
||||
@ -157,26 +156,6 @@ namespace HaoYueNet.ClientNetwork
|
||||
}
|
||||
}
|
||||
|
||||
////拼接头长度
|
||||
//private byte[] SendDataWithHead(byte[] message)
|
||||
//{
|
||||
|
||||
// MemoryStream memoryStream = new MemoryStream();//创建一个内存流
|
||||
|
||||
// byte[] BagHead = BitConverter.GetBytes(message.Length + 4);//往字节数组中写入包头(包头自身的长度和消息体的长度)的长度
|
||||
|
||||
// memoryStream.Write(BagHead, 0, BagHead.Length);//将包头写入内存流
|
||||
|
||||
// memoryStream.Write(message, 0, message.Length);//将消息体写入内存流
|
||||
|
||||
// byte[] HeadAndBody = memoryStream.ToArray();//将内存流中的数据写入字节数组
|
||||
|
||||
// memoryStream.Close();//关闭内存
|
||||
// memoryStream.Dispose();//释放资源
|
||||
|
||||
// return HeadAndBody;
|
||||
//}
|
||||
|
||||
/// <summary>
|
||||
/// 供外部调用 发送消息
|
||||
/// </summary>
|
||||
@ -184,13 +163,6 @@ namespace HaoYueNet.ClientNetwork
|
||||
/// <param name="data">序列化之后的数据</param>
|
||||
public void SendToServer(int CMDID,byte[] data)
|
||||
{
|
||||
//LogOut("准备数据 CMDID=> "+CMDID);
|
||||
/*
|
||||
HunterNet_C2S _c2sdata = new HunterNet_C2S();
|
||||
_c2sdata.HunterNetCoreCmdID = CMDID;
|
||||
_c2sdata.HunterNetCoreData = ByteString.CopyFrom(data);
|
||||
byte[] _finaldata = Serizlize(_c2sdata);
|
||||
*/
|
||||
byte[] _finaldata = HunterNet_C2S.CreatePkgData((ushort)CMDID, data);
|
||||
SendToSocket(_finaldata);
|
||||
}
|
||||
@ -247,12 +219,6 @@ namespace HaoYueNet.ClientNetwork
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
HunterNet_S2C _c2s = DeSerizlize<HunterNet_S2C>(data);
|
||||
|
||||
OnReceiveData(_c2s.HunterNetCoreCmdID, _c2s.HunterNetCoreERRORCode, _c2s.HunterNetCoreData.ToArray());
|
||||
*/
|
||||
|
||||
HunterNet_S2C.AnalysisPkgData(data, out ushort CmdID, out ushort Error, out byte[] resultdata);
|
||||
OnReceiveData(CmdID, Error, resultdata);
|
||||
}
|
||||
@ -359,7 +325,6 @@ namespace HaoYueNet.ClientNetwork
|
||||
|
||||
public void LogOut(string Msg)
|
||||
{
|
||||
//Console.WriteLine(Msg);
|
||||
OnLogOut?.Invoke(Msg);
|
||||
}
|
||||
|
||||
|
@ -124,26 +124,6 @@ namespace HaoYueNet.ClientNetwork
|
||||
client.Send(data);
|
||||
}
|
||||
|
||||
////拼接头长度
|
||||
//private byte[] SendDataWithHead(byte[] message)
|
||||
//{
|
||||
|
||||
// MemoryStream memoryStream = new MemoryStream();//创建一个内存流
|
||||
|
||||
// byte[] BagHead = BitConverter.GetBytes(message.Length + 4);//往字节数组中写入包头(包头自身的长度和消息体的长度)的长度
|
||||
|
||||
// memoryStream.Write(BagHead, 0, BagHead.Length);//将包头写入内存流
|
||||
|
||||
// memoryStream.Write(message, 0, message.Length);//将消息体写入内存流
|
||||
|
||||
// byte[] HeadAndBody = memoryStream.ToArray();//将内存流中的数据写入字节数组
|
||||
|
||||
// memoryStream.Close();//关闭内存
|
||||
// memoryStream.Dispose();//释放资源
|
||||
|
||||
// return HeadAndBody;
|
||||
//}
|
||||
|
||||
/// <summary>
|
||||
/// 供外部调用 发送消息
|
||||
/// </summary>
|
||||
@ -152,13 +132,6 @@ namespace HaoYueNet.ClientNetwork
|
||||
/// <param name="data"></param>
|
||||
public void SendToSocket(int CMDID, int ERRCODE, byte[] data)
|
||||
{
|
||||
//LogOut("准备数据 CMDID=> "+CMDID);
|
||||
/*HunterNet_S2C _s2sdata = new HunterNet_S2C();
|
||||
_s2sdata.HunterNetCoreCmdID = CMDID;
|
||||
_s2sdata.HunterNetCoreERRORCode = ERRCODE;
|
||||
_s2sdata.HunterNetCoreData = ByteString.CopyFrom(data);
|
||||
byte[] _finaldata = Serizlize(_s2sdata);*/
|
||||
|
||||
byte[] _finaldata = HunterNet_S2C.CreatePkgData((ushort)CMDID, (ushort)ERRCODE, data);
|
||||
SendToSocket(_finaldata);
|
||||
}
|
||||
@ -324,7 +297,6 @@ namespace HaoYueNet.ClientNetwork
|
||||
|
||||
public void LogOut(string Msg)
|
||||
{
|
||||
//Console.WriteLine(Msg);
|
||||
OnLogOut(Msg);
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,4 @@
|
||||
using System.Net.Sockets;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace HaoYueNet.ServerNetwork
|
||||
{
|
||||
public static class BaseData
|
||||
@ -9,21 +7,6 @@ namespace HaoYueNet.ServerNetwork
|
||||
/// 心跳包数据
|
||||
/// </summary>
|
||||
public static byte[] HeartbeatData = new byte[5] { 0x05, 0x00, 0x00, 0x00, 0x00 };
|
||||
|
||||
public static void writeInt(byte[] buf, int offset, int value)
|
||||
{
|
||||
buf[offset++] = (byte)(255 & value);
|
||||
buf[offset++] = (byte)(255 & value >> 8);
|
||||
buf[offset++] = (byte)(255 & value >> 16);
|
||||
buf[offset++] = (byte)(255 & value >>> 24);
|
||||
}
|
||||
|
||||
public static void writeUInt16(byte[] buf, int offset, int value)
|
||||
{
|
||||
buf[offset++] = (byte)(255 & value);
|
||||
buf[offset++] = (byte)(255 & value >> 8);
|
||||
}
|
||||
|
||||
public static class HunterNet_Heartbeat
|
||||
{
|
||||
public static void SetDataToSocketAsyncEventArgs(SocketAsyncEventArgs myreadEventArgs)
|
||||
@ -31,128 +14,58 @@ namespace HaoYueNet.ServerNetwork
|
||||
myreadEventArgs.SetBuffer(HeartbeatData, 0, HeartbeatData.Length);
|
||||
}
|
||||
}
|
||||
|
||||
public static class HunterNet_S2C
|
||||
{
|
||||
public static void SetDataToSocketAsyncEventArgs(SocketAsyncEventArgs myreadEventArgs, UInt16 CmdID, UInt16 Error, byte[] AddonBytes_Data)
|
||||
{
|
||||
myreadEventArgs.SetBuffer(CreatePkgData(CmdID, Error, AddonBytes_Data));
|
||||
}
|
||||
|
||||
public static byte[] CreatePkgData(UInt16 CmdID, UInt16 Error, byte[] AddonBytes_Data)
|
||||
{
|
||||
//用Buffer.BlockCopy拷贝
|
||||
//包长度
|
||||
int AllLenght = 4 + 2 + 2 + AddonBytes_Data.Length;
|
||||
byte[] BufferData = new byte[AllLenght];
|
||||
|
||||
/*
|
||||
//包长度
|
||||
writeInt(BufferData, 0, AllLenght);
|
||||
|
||||
//CMDID
|
||||
writeUInt16(BufferData, 4, CmdID);
|
||||
|
||||
//Error
|
||||
writeUInt16(BufferData, 4 + 2, Error);
|
||||
*/
|
||||
|
||||
|
||||
//包长度
|
||||
Buffer.BlockCopy(BitConverter.GetBytes(AllLenght), 0, BufferData, 0, sizeof(int));
|
||||
//CMDID
|
||||
Buffer.BlockCopy(BitConverter.GetBytes(CmdID), 0, BufferData, 4, sizeof(UInt16));
|
||||
//CMDID
|
||||
//ErrID
|
||||
Buffer.BlockCopy(BitConverter.GetBytes(Error), 0, BufferData, 4 + 2, sizeof(UInt16));
|
||||
//DATA
|
||||
Buffer.BlockCopy(AddonBytes_Data, 0, BufferData, 4 + 2 + 2, AddonBytes_Data.Length);
|
||||
|
||||
return BufferData;
|
||||
}
|
||||
|
||||
public static void AnalysisPkgData(Span<byte> srcdata, out UInt16 CmdID, out UInt16 Error, out byte[] data)
|
||||
{
|
||||
//CmdID = BitConverter.ToUInt16(srcdata, 0);
|
||||
//Error = BitConverter.ToUInt16(srcdata, 2);
|
||||
//data = new byte[srcdata.Length - 2 - 2];
|
||||
//Array.Copy(srcdata, 4, data, 0, data.Length);
|
||||
|
||||
//CmdID = BitConverter.ToUInt16(srcdata, 0);
|
||||
//Error = BitConverter.ToUInt16(srcdata, 2);
|
||||
//Span<byte> span_srcdata = srcdata;
|
||||
//data = span_srcdata.Slice(2 + 2).ToArray();
|
||||
|
||||
CmdID = BitConverter.ToUInt16(srcdata.Slice(0, 2));
|
||||
Error = BitConverter.ToUInt16(srcdata.Slice(2, 2));
|
||||
data = srcdata.Slice(2 + 2).ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
public static class HunterNet_C2S
|
||||
{
|
||||
public static void SetDataToSocketAsyncEventArgs(SocketAsyncEventArgs myreadEventArgs, UInt16 CmdID, byte[] AddonBytes_Data)
|
||||
{
|
||||
myreadEventArgs.SetBuffer(CreatePkgData(CmdID, AddonBytes_Data));
|
||||
}
|
||||
|
||||
public static byte[] CreatePkgData(UInt16 CmdID, byte[] AddonBytes_Data)
|
||||
{
|
||||
//byte[] AddonBytes_CmdID = BitConverter.GetBytes(CmdID);
|
||||
//int AllLenght = AddonBytes_CmdID.Length + AddonBytes_Data.Length + 4;
|
||||
//int LastIndex = 0;
|
||||
////包长度
|
||||
//byte[] AddonBytes_Lenght = BitConverter.GetBytes(AllLenght);
|
||||
|
||||
//byte[] BufferData = new byte[AllLenght];
|
||||
|
||||
////包长度
|
||||
//AddonBytes_Lenght.CopyTo(BufferData, LastIndex);
|
||||
//LastIndex += AddonBytes_Lenght.Length;
|
||||
|
||||
////CMDID
|
||||
//AddonBytes_CmdID.CopyTo(BufferData, LastIndex);
|
||||
//LastIndex += AddonBytes_CmdID.Length;
|
||||
|
||||
////DATA
|
||||
//AddonBytes_Data.CopyTo(BufferData, LastIndex);
|
||||
//LastIndex += AddonBytes_Data.Length;
|
||||
|
||||
//myreadEventArgs.SetBuffer(BufferData, 0, BufferData.Length);
|
||||
//return BufferData;
|
||||
|
||||
//用Buffer.BlockCopy拷贝
|
||||
|
||||
byte[] AddonBytes_CmdID = BitConverter.GetBytes(CmdID);
|
||||
int AllLenght = AddonBytes_CmdID.Length + AddonBytes_Data.Length + 4;
|
||||
int LastIndex = 0;
|
||||
//包长度
|
||||
byte[] AddonBytes_Lenght = BitConverter.GetBytes(AllLenght);
|
||||
|
||||
byte[] BufferData = new byte[AllLenght];
|
||||
//包长度
|
||||
Buffer.BlockCopy(AddonBytes_Lenght, 0, BufferData, LastIndex, AddonBytes_Lenght.Length);
|
||||
LastIndex += AddonBytes_Lenght.Length;
|
||||
|
||||
Buffer.BlockCopy(AddonBytes_Lenght, 0, BufferData, 0, AddonBytes_Lenght.Length);
|
||||
//CMDID
|
||||
Buffer.BlockCopy(AddonBytes_CmdID, 0, BufferData, LastIndex, AddonBytes_CmdID.Length);
|
||||
LastIndex += AddonBytes_CmdID.Length;
|
||||
|
||||
Buffer.BlockCopy(AddonBytes_CmdID, 0, BufferData, 4, AddonBytes_CmdID.Length);
|
||||
//DATA
|
||||
Buffer.BlockCopy(AddonBytes_Data, 0, BufferData, LastIndex, AddonBytes_Data.Length);
|
||||
LastIndex += AddonBytes_Data.Length;
|
||||
Buffer.BlockCopy(AddonBytes_Data, 0, BufferData, 4 + 2, AddonBytes_Data.Length);
|
||||
return BufferData;
|
||||
}
|
||||
|
||||
public static void AnalysisPkgData(Span<byte> srcdata,out UInt16 CmdID, out byte[] data)
|
||||
public static void AnalysisPkgData(Span<byte> srcdata, out UInt16 CmdID, out byte[] data)
|
||||
{
|
||||
//data = new byte[srcdata.Length - 2];
|
||||
//CmdID = BitConverter.ToUInt16(srcdata, 0);
|
||||
//Array.Copy(srcdata, 2, data, 0, data.Length);
|
||||
|
||||
//CmdID = BitConverter.ToUInt16(srcdata, 0);
|
||||
//Span<byte> span_srcdata = srcdata;
|
||||
//data = span_srcdata.Slice(2).ToArray();
|
||||
|
||||
CmdID = BitConverter.ToUInt16(srcdata.Slice(0, 2));
|
||||
data = srcdata.Slice(2).ToArray();
|
||||
}
|
||||
|
@ -30,16 +30,10 @@ namespace HaoYueNet.ServerNetwork
|
||||
/// </summary>
|
||||
public object UserInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据缓存区
|
||||
/// </summary>
|
||||
//public List<byte> Buffer { get; set; }
|
||||
|
||||
public MemoryStream memoryStream { get; set; }
|
||||
|
||||
public AsyncUserToken()
|
||||
{
|
||||
//this.Buffer = new List<byte>();
|
||||
this.memoryStream = new MemoryStream();
|
||||
}
|
||||
/// <summary>
|
||||
|
@ -1,8 +1,5 @@
|
||||
using System.Net.Sockets;
|
||||
|
||||
namespace HaoYueNet.ServerNetwork
|
||||
namespace HaoYueNet.ServerNetwork
|
||||
{
|
||||
|
||||
public class MemoryStreamPool
|
||||
{
|
||||
Stack<MemoryStream> m_pool;
|
||||
|
@ -2,7 +2,6 @@
|
||||
|
||||
namespace HaoYueNet.ServerNetwork
|
||||
{
|
||||
|
||||
public class SocketEventPool
|
||||
{
|
||||
Stack<SocketAsyncEventArgs> m_pool;
|
||||
|
@ -1,6 +1,4 @@
|
||||
//using HunterProtobufCore;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using static HaoYueNet.ServerNetwork.BaseData;
|
||||
|
||||
@ -231,7 +229,11 @@ namespace HaoYueNet.ServerNetwork
|
||||
#region Token管理
|
||||
public AsyncUserToken GetAsyncUserTokenForSocket(Socket sk)
|
||||
{
|
||||
return _DictSocketAsyncUserToken.ContainsKey(sk) ? _DictSocketAsyncUserToken[sk] : null;
|
||||
AsyncUserToken result;
|
||||
if (_DictSocketAsyncUserToken.TryGetValue(sk,out result))
|
||||
return result;
|
||||
return null;
|
||||
//return _DictSocketAsyncUserToken.ContainsKey(sk) ? _DictSocketAsyncUserToken[sk] : null;
|
||||
}
|
||||
void AddUserToken(AsyncUserToken userToken)
|
||||
{
|
||||
@ -605,58 +607,5 @@ namespace HaoYueNet.ServerNetwork
|
||||
OnNetLog?.Invoke(msg);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 心跳包
|
||||
/*
|
||||
/// <summary>
|
||||
/// 发送心跳包
|
||||
/// </summary>
|
||||
/// <param name="sk"></param>
|
||||
///
|
||||
private void SendHeartbeatWithIndex(AsyncUserToken token)
|
||||
{
|
||||
if (token == null || token.Socket == null || !token.Socket.Connected)
|
||||
return;
|
||||
try
|
||||
{
|
||||
//OutNetLog(DateTime.Now.ToString() + "发送心跳包");
|
||||
token.SendIndex = MaxSendIndexNum;
|
||||
SendHeartbeatMessage(token);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CloseReady(token);
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 心跳包时钟事件
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void CheckUpdatetimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
for (int i = 0; i < m_clients.Count(); i++)
|
||||
{
|
||||
//接收服务器数据计数
|
||||
m_clients[i].RevIndex--;
|
||||
if (m_clients[i].RevIndex <= 0)
|
||||
{
|
||||
//判定掉线
|
||||
CloseReady(m_clients[i]);
|
||||
return;
|
||||
}
|
||||
|
||||
//发送计数
|
||||
m_clients[i].SendIndex--;
|
||||
if (m_clients[i].SendIndex <= 0)//需要发送心跳包了
|
||||
{
|
||||
//重置倒计时计数
|
||||
m_clients[i].SendIndex = MaxSendIndexNum;
|
||||
SendHeartbeatWithIndex(m_clients[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
@ -1,10 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
|
||||
namespace HaoYueNet.ServerNetwork
|
||||
namespace HaoYueNet.ServerNetwork
|
||||
{
|
||||
public class TokenWithMsg_SourceMode
|
||||
{
|
||||
@ -15,7 +9,6 @@ namespace HaoYueNet.ServerNetwork
|
||||
|
||||
public class TokenMsgPool_SourceMode
|
||||
{
|
||||
//Stack<TokenWithMsg> msg_pool;
|
||||
Queue<TokenWithMsg_SourceMode> msg_pool;
|
||||
|
||||
public TokenMsgPool_SourceMode(int capacity)
|
||||
|
@ -231,7 +231,11 @@ namespace HaoYueNet.ServerNetwork
|
||||
#region Token管理
|
||||
public AsyncUserToken GetAsyncUserTokenForSocket(Socket sk)
|
||||
{
|
||||
return _DictSocketAsyncUserToken.ContainsKey(sk) ? _DictSocketAsyncUserToken[sk] : null;
|
||||
AsyncUserToken result;
|
||||
if (_DictSocketAsyncUserToken.TryGetValue(sk, out result))
|
||||
return result;
|
||||
return null;
|
||||
//return _DictSocketAsyncUserToken.ContainsKey(sk) ? _DictSocketAsyncUserToken[sk] : null;
|
||||
}
|
||||
void AddUserToken(AsyncUserToken userToken)
|
||||
{
|
||||
|
@ -234,7 +234,11 @@ namespace HaoYueNet.ServerNetwork.Standard2
|
||||
#region Token管理
|
||||
public AsyncUserToken GetAsyncUserTokenForSocket(Socket sk)
|
||||
{
|
||||
return _DictSocketAsyncUserToken.ContainsKey(sk) ? _DictSocketAsyncUserToken[sk] : null;
|
||||
AsyncUserToken result;
|
||||
if (_DictSocketAsyncUserToken.TryGetValue(sk, out result))
|
||||
return result;
|
||||
return null;
|
||||
//return _DictSocketAsyncUserToken.ContainsKey(sk) ? _DictSocketAsyncUserToken[sk] : null;
|
||||
}
|
||||
void AddUserToken(AsyncUserToken userToken)
|
||||
{
|
||||
|
@ -234,7 +234,11 @@ namespace HaoYueNet.ServerNetwork.Standard2
|
||||
#region Token管理
|
||||
public AsyncUserToken GetAsyncUserTokenForSocket(Socket sk)
|
||||
{
|
||||
return _DictSocketAsyncUserToken.ContainsKey(sk) ? _DictSocketAsyncUserToken[sk] : null;
|
||||
AsyncUserToken result;
|
||||
if (_DictSocketAsyncUserToken.TryGetValue(sk, out result))
|
||||
return result;
|
||||
return null;
|
||||
//return _DictSocketAsyncUserToken.ContainsKey(sk) ? _DictSocketAsyncUserToken[sk] : null;
|
||||
}
|
||||
void AddUserToken(AsyncUserToken userToken)
|
||||
{
|
||||
|
@ -63,17 +63,29 @@
|
||||
|
||||
private void InterRegisterEvent(EEvent evt, Delegate callback)
|
||||
{
|
||||
if (eventDic.ContainsKey(evt))
|
||||
if (eventDic.TryGetValue(evt, out List<Delegate> dlist))
|
||||
{
|
||||
if (eventDic[evt].IndexOf(callback) < 0)
|
||||
if (dlist.IndexOf(callback) < 0)
|
||||
{
|
||||
eventDic[evt].Add(callback);
|
||||
dlist.Add(callback);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
eventDic.Add(evt, new List<Delegate>() { callback });
|
||||
}
|
||||
|
||||
//if (eventDic.ContainsKey(evt))
|
||||
//{
|
||||
// if (eventDic[evt].IndexOf(callback) < 0)
|
||||
// {
|
||||
// eventDic[evt].Add(callback);
|
||||
// }
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// eventDic.Add(evt, new List<Delegate>() { callback });
|
||||
//}
|
||||
}
|
||||
#endregion
|
||||
|
||||
@ -111,11 +123,16 @@
|
||||
|
||||
private void InterUnregisterEvent(EEvent evt, Delegate callback)
|
||||
{
|
||||
if (eventDic.ContainsKey(evt))
|
||||
if (eventDic.TryGetValue(evt, out List<Delegate> dlist))
|
||||
{
|
||||
eventDic[evt].Remove(callback);
|
||||
if (eventDic[evt].Count == 0) eventDic.Remove(evt);
|
||||
dlist.Remove(callback);
|
||||
if (dlist.Count == 0) eventDic.Remove(evt);
|
||||
}
|
||||
//if (eventDic.ContainsKey(evt))
|
||||
//{
|
||||
// eventDic[evt].Remove(callback);
|
||||
// if (eventDic[evt].Count == 0) eventDic.Remove(evt);
|
||||
//}
|
||||
}
|
||||
#endregion
|
||||
|
||||
@ -224,14 +241,21 @@
|
||||
/// <returns></returns>
|
||||
private List<Delegate> GetEventList(EEvent evt)
|
||||
{
|
||||
if (eventDic.ContainsKey(evt))
|
||||
if (eventDic.TryGetValue(evt,out List<Delegate> dlist))
|
||||
{
|
||||
List<Delegate> tempList = eventDic[evt];
|
||||
if (null != tempList)
|
||||
if (null != dlist)
|
||||
{
|
||||
return tempList;
|
||||
return dlist;
|
||||
}
|
||||
}
|
||||
//if (eventDic.ContainsKey(evt))
|
||||
//{
|
||||
// List<Delegate> tempList = eventDic[evt];
|
||||
// if (null != tempList)
|
||||
// {
|
||||
// return tempList;
|
||||
// }
|
||||
//}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -20,17 +20,28 @@
|
||||
|
||||
private void InterRegNetMsgEvent(int cmd, Delegate callback)
|
||||
{
|
||||
if (netEventDic.ContainsKey(cmd))
|
||||
if (netEventDic.TryGetValue(cmd, out List<Delegate> dlist))
|
||||
{
|
||||
if (netEventDic[cmd].IndexOf(callback) < 0)
|
||||
if (dlist.IndexOf(callback) < 0)
|
||||
{
|
||||
netEventDic[cmd].Add(callback);
|
||||
dlist.Add(callback);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
netEventDic.Add(cmd, new List<Delegate>() { callback });
|
||||
}
|
||||
//if (netEventDic.ContainsKey(cmd))
|
||||
//{
|
||||
// if (netEventDic[cmd].IndexOf(callback) < 0)
|
||||
// {
|
||||
// netEventDic[cmd].Add(callback);
|
||||
// }
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// netEventDic.Add(cmd, new List<Delegate>() { callback });
|
||||
//}
|
||||
}
|
||||
#endregion
|
||||
|
||||
@ -44,11 +55,16 @@
|
||||
|
||||
private void InterUnregisterCMD(int cmd, Delegate callback)
|
||||
{
|
||||
if (netEventDic.ContainsKey(cmd))
|
||||
if (netEventDic.TryGetValue(cmd, out List<Delegate> dlist))
|
||||
{
|
||||
netEventDic[cmd].Remove(callback);
|
||||
if (netEventDic[cmd].Count == 0) netEventDic.Remove(cmd);
|
||||
dlist.Remove(callback);
|
||||
if (dlist.Count == 0) netEventDic.Remove(cmd);
|
||||
}
|
||||
//if (netEventDic.ContainsKey(cmd))
|
||||
//{
|
||||
// netEventDic[cmd].Remove(callback);
|
||||
// if (netEventDic[cmd].Count == 0) netEventDic.Remove(cmd);
|
||||
//}
|
||||
}
|
||||
#endregion
|
||||
|
||||
@ -80,14 +96,22 @@
|
||||
/// <returns></returns>
|
||||
private List<Delegate> GetNetEventDicList(int cmd)
|
||||
{
|
||||
if (netEventDic.ContainsKey(cmd))
|
||||
|
||||
if (netEventDic.TryGetValue(cmd, out List<Delegate> dlist))
|
||||
{
|
||||
List<Delegate> tempList = netEventDic[cmd];
|
||||
if (null != tempList)
|
||||
if (null != dlist)
|
||||
{
|
||||
return tempList;
|
||||
return dlist;
|
||||
}
|
||||
}
|
||||
//if (netEventDic.ContainsKey(cmd))
|
||||
//{
|
||||
// List<Delegate> tempList = netEventDic[cmd];
|
||||
// if (null != tempList)
|
||||
// {
|
||||
// return tempList;
|
||||
// }
|
||||
//}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -202,14 +202,21 @@ namespace ServerCore.Event
|
||||
/// <returns></returns>
|
||||
private List<Delegate> GetEventList(EEvent evt)
|
||||
{
|
||||
if (eventDic.ContainsKey(evt))
|
||||
if (eventDic.TryGetValue(evt, out List<Delegate> dlist))
|
||||
{
|
||||
List<Delegate> tempList = eventDic[evt];
|
||||
if (null != tempList)
|
||||
if (null != dlist)
|
||||
{
|
||||
return tempList;
|
||||
return dlist;
|
||||
}
|
||||
}
|
||||
//if (eventDic.ContainsKey(evt))
|
||||
//{
|
||||
// List<Delegate> tempList = eventDic[evt];
|
||||
// if (null != tempList)
|
||||
// {
|
||||
// return tempList;
|
||||
// }
|
||||
//}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user