using HaoYueNet.ClientNetwork.IOCPMode;
using System.Net.Sockets;
namespace ClientSaeaTest
{
internal class SaeaClient : TcpSaeaClient
{
public SaeaClient(int numConnections, int receiveBufferSize)
: base(numConnections, receiveBufferSize)
{
OnClientNumberChange += ClientNumberChange;
OnReceive += ReceiveData;
OnDisconnected += OnDisconnect;
OnNetLog += OnShowNetLog;
}
private void ClientNumberChange(int num, AsyncUserToken token)
{
Console.WriteLine("Client数发生变化");
}
public void Connect(string ip, int port)
{
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
base.StartConnect(ip, port, socket);
}
///
/// 接受包回调
///
/// 协议ID
/// 错误编号
/// 业务数据
private void ReceiveData(AsyncUserToken token, int CMDID,int Error, byte[] data)
{
DataCallBack(token.Socket, CMDID, Error,data);
}
public void DataCallBack(Socket sk, int CMDID, int Error, byte[] data)
{
Console.WriteLine("收到消息 CMDID =>" + CMDID + " 数据长度=>" + data.Length);
try
{
//抛出网络数据
//NetMsg.Instance.PostNetMsgEvent(CMDID, sk, data);
}
catch (Exception ex)
{
Console.WriteLine("逻辑处理错误:" + ex.ToString());
}
}
///
/// 断开连接
///
///
public void OnDisconnect(AsyncUserToken token)
{
Console.WriteLine("断开连接");
//ServerManager.g_ClientMgr.SetClientOfflineForSocket(token.Socket);
}
public void OnShowNetLog(string msg)
{
//ServerManager.g_Log.Debug(msg);
}
}
}