/*
文件名:Socket.nut
路径:Core/ExtraCalss/Socket/Socket.nut
创建日期:2024-11-30	19:55
文件用途:
*/
_Socket_Map_ <- [];
class Socket {
    //监听器
    Listeners = null;
    //客户端
    Client = null;

    constructor() {
        //创建监听器
        this.Listeners = Socket_CreateListener();
        //创建客户端
        this.Client = Socket_CreateClient(this.Listeners);
    }

    /*
     * @函数作用: 绑定函数
     * @参数 Type 绑定类型
     * @参数 Func 绑定函数
     */
    function BindFunc(Type, Func) {
        Socket_BindFunc(Client, Type, Func);
    }

    /*
     * @函数作用: 连接到服务器
     * @参数 IpAddr 服务器IP地址
     * @参数 Port 服务器端口
     * @参数 AsyncConnect 是否异步连接
     * @返回值 连接结果
     */
    function Connect(IpAddr, Port, AsyncConnect) {
        _Socket_Map_.push(this);
        return Socket_Connect(this.Client, IpAddr, Port, AsyncConnect);
    }

    /*
     * @函数作用: 执行包逻辑
     */
    function DispatchPacket() {
        Socket_DispatchPacket(this.Client);
    }
}