Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
 /// <summary>
 /// Fire OnDisconnectEvent and dispose client
 /// </summary>
 /// <param name="client"></param>
 protected virtual void HandleDisconnect(EasyTcpClient client)
 {
     client.FireOnDisconnect();
     client.Dispose();
 }
Esempio n. 3
0
 /// <summary>
 /// Handle disconnect for a specific client
 /// </summary>
 /// <param name="client"></param>
 internal static void HandleDisconnect(this EasyTcpClient client)
 {
     client.FireOnDisconnect();
     client.Dispose();
 }