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); } }