using System.Net;
using System.Net.Sockets;
using Milimoe.FunGame.Core.Library.Constant;
namespace Milimoe.FunGame.Core.Service
{
internal class SocketManager
{
///
/// 客户端专用Socket
///
internal static Socket? Socket => _Socket;
///
/// 服务器端专用Socket
///
internal static Socket? ServerSocket => _ServerSocket;
private static Socket? _Socket = null;
private static Socket? _ServerSocket = null;
///
/// 异步监听事件
///
/// 结果类
/// 通信类型
/// 参数
/// 结果
internal delegate Task SocketHandler(SocketMessageType type, params object[] objs);
///
/// 异步监听事件
///
/// 通信类型
/// 参数
/// 线程
internal delegate Task SocketHandler(SocketMessageType type, params object[] objs);
///
/// 监听返回值为bool的事件
///
internal event SocketHandler? SocketReceiveBoolAsync;
///
/// 监听返回值为String的事件
///
internal event SocketHandler? SocketReceiveStringAsync;
///
/// 监听返回值为object的事件
///
internal event SocketHandler