我编的SOCKET异步通讯也出现了这个问题,应该是多个线程之间同步的问题

解决方案 »

  1.   

    可不可以发一个完整一点的程序给我,让我也调试一下?
    [email protected]
      

  2.   

    问题可能出在int recvBytes = socket.EndReceive(ar);上
    当程序运行到次是,执行的是退出操作endReceive,
    应该接受完毕后再退出!
      

  3.   

    int recvBytes = socket.EndReceive(ar);
    if(keep_Running)Run();
    /////////////////
    socket.EndRecive(ar) 好象是返回一个新的socket对象
    而不是int 
    查msdn 看看
      

  4.   

    public int EndReceive(
       IAsyncResult asyncResult
    );
    这个没错我又编了个不是多线程的程序,试了一试,果然就没错了。
    代码不变,点击button创建socket。然后,运行Run()
    就没有出错了。
    很可能就是和多线程有关。
    代码我是参考一本书上的,那本书上的例程也不是多线程的。