是程序中的socket数据收发部分,出现“由于线程退出或者应用程序请求,已放弃I/O”操作。是用C#,都在.net framework 3.5下运行的

解决方案 »

  1.   


    private void ReceiveCallback(IAsyncResult ar)
            {
                try
                {
                    StateObject state = (StateObject)ar.AsyncState;
                    Socket tempClient = state.workSocket;                // Read data from the remote device.
                    int bytesRead = tempClient.EndReceive(ar);                if (bytesRead > 0)
                    {
                        byte[] tempRevBuf = new byte[bytesRead];
                        Array.Copy(state.buffer, 0, tempRevBuf, 0, bytesRead);                    for (int i = 0; i < tempRevBuf.Length; i++)
                        {
                            revBuf.Enqueue(tempRevBuf[i]);
                        }                    DataReceivedEventArgs args = new DataReceivedEventArgs();
                        args.revDataNum = bytesRead;
                        DataReceived(this, args);                    client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,
                            new AsyncCallback(ReceiveCallback), state);
                    }
                }
                catch (Exception e)
                {
                    AppTools.SendLog(e.Message + e.StackTrace, MSG_TYPE.DEBUG);
                }
            }
    int bytesRead = tempClient.EndReceive(ar);这一句出的异常
      

  2.   

    为什么要用EndReceive,读完会关闭吧
    换用其它的Receive