/// <summary> /// Determines if client is still connected to endpoint /// </summary> /// <param name="client"></param> /// <param name="poll">uses poll if set to true, can be more accurate but decreases performance</param> /// <returns>determines whether the client is still connected</returns> public static bool IsConnected(this EasyTcpClient client, bool poll = false) { if (client?.BaseSocket == null) { return(false); } if (!client.BaseSocket.Connected || !poll && client.BaseSocket.Poll(0, SelectMode.SelectRead) && client.BaseSocket.Available.Equals(0)) { client.FireOnDisconnect(); client.Dispose(); return(false); } return(true); }
/// <summary> /// Fire OnDisconnectEvent and dispose client /// </summary> /// <param name="client"></param> protected virtual void HandleDisconnect(EasyTcpClient client) { client.FireOnDisconnect(); client.Dispose(); }
/// <summary> /// Handle disconnect for a specific client /// </summary> /// <param name="client"></param> internal static void HandleDisconnect(this EasyTcpClient client) { client.FireOnDisconnect(); client.Dispose(); }