// Connected or not public void ConnectCallback(IAsyncResult asyncConnect) { Socket clientSocket = (Socket)asyncConnect.AsyncState; clientSocket.EndConnect(asyncConnect); if (!clientSocket.Connected) { Console.WriteLine("-> client is not connected."); connected = false; return; } else { Console.WriteLine("-> client is connected."); connected = true; } StateObject stateObject = new StateObject(1, clientSocket); clientSocket.BeginReceive(stateObject.sBuffer, 0, stateObject.sBuffer.Length, SocketFlags.None, new AsyncCallback(this.ReceiveCallback), stateObject); statusTimer = new System.Timers.Timer(); statusTimer.Elapsed += new ElapsedEventHandler(CheckForStatus); statusTimer.Interval = 500; statusTimer.Enabled = true; // Delegate Callback eventHandler.socketDidConnect(socketName); }