private void OnReceive(IAsyncResult ar) { Socket clientSocket = null; try { int iRx; clientSocket = (Socket)ar.AsyncState; iRx = clientSocket.EndReceive(ar); File.AppendAllText("c:\\tcp.txt", "OnReceive: " + iRx + Environment.NewLine); m_bufQueue.append(byteData, iRx); ReceiveProcess(clientSocket); clientSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None, new AsyncCallback(OnReceive), clientSocket); } catch (Exception err) { //ServiceLogger.WriteLog(LOGGER_NAMES.MPFMSERV, err.Message); if (!clientSocket.Connected || clientSocket.Available == 0) { int nIndex = 0; foreach (ClientInfo client in clientList) { if (client.socket == clientSocket) { clientList.RemoveAt(nIndex); break; } ++nIndex; } if (clientSocket != null) { clientSocket.Close(); } return; } return; } }