public void OnDataReceived(IAsyncResult async)
        {
            MyStateSocket stateSocket = (MyStateSocket)async.AsyncState;

            byte[] data = new byte[1024 * 5000];
            int    receivedDataLength = stateSocket.workSocket.Receive(data);
            string stringData         = Encoding.ASCII.GetString(data, 0, receivedDataLength + 1);

            txtDataReceive.Invoke(new MethodInvoker(delegate
            {
                txtDataReceive.Text = txtDataReceive.Text + stringData;
                txtDataReceive.Focus();
                txtDataReceive.SelectionStart = txtDataReceive.Text.Length;
            }));

            WaitForData(m_socWorker);

            ////delete record
            //bool ret = false;
            //if (stringData.Contains("DELETE "))
            //{
            //    ret = DeleteRecord(stringData);
            //}

            //if (ret)
            //{
            //    txtDataReceive.Invoke(new MethodInvoker(delegate
            //    {
            //        txtDataReceive.Text = txtDataReceive.Text + "One record was deleted..." + Environment.NewLine;
            //        txtDataReceive.Focus();
            //        txtDataReceive.SelectionStart = txtDataReceive.Text.Length;
            //    }));
            //}
        }
        public void WaitForData(Socket socket)
        {
            if (pfnWorkerCallBack == null)
            {
                pfnWorkerCallBack = new AsyncCallback(OnDataReceived);
            }
            MyStateSocket stateSocket = new MyStateSocket();

            if (socket != null)
            {
                stateSocket.workSocket = socket;
                socket.BeginReceive(stateSocket._dataBuffer, 0, stateSocket._dataBuffer.Length, SocketFlags.None, pfnWorkerCallBack, stateSocket);
            }
        }