/// <summary> /// 创建一个客户端超级套接字 /// <para>客户端会尝试连接3次,如果3次都失败则触发连接失败回调</para> /// </summary> /// <param name="ip">连接地址</param> /// <param name="port">连接端口</param> /// <param name="listener">监听器</param> /// <param name="config">配置</param> /// <returns></returns> public static HyperSocket CreateClient(string ip, uint port, IHyperSocketClient listener, HyperSocketConfig config = null) { try { if (config == null) { config = new HyperSocketConfig(); } var hyperSocket = new HyperSocket(false, ip, port, 0, 0, config); hyperSocket.cntListener = listener; // 开始发起连接 hyperSocket.tcpClient = new HyperSocketClientModule(ip, (int)port, (int)config.TcpReceiveSize, ProtocolType.Tcp, hyperSocket); hyperSocket.tcpClient.SetListener(listener); hyperSocket.tcpClient.Init(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp, hyperSocket.tcpClient); // 发送验证标签 hyperSocket.tcpClient.Send(FirstConnectBytes); return(hyperSocket); } catch (Exception ex) { listener.SocketError(null, ex); return(null); } }
internal void CloseSocket() { Close(); if (kcpHelper != null) { kcpHelper.CloseKcp(); } hyperSocket = null; listener = null; }
internal void SetListener(IHyperSocketClient listener) { this.listener = listener; }