public void Connect(IPEndPoint serverAddress)
{
ThrowIfDisposed();
if (handler != null && handler.Connected)
throw new InvalidOperationException("Client already connected");
hostAddress = serverAddress;
handler = new Socket(serverAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
handler.BeginConnect(serverAddress, OnConnected, null);
}