如题:
    开了一个县城使用socket接收数据,并将接收到的数据放到一个缓冲区中;
    又开了一个县城从这个缓冲区中读取数据;
    但接收数据的缓冲区有时会莫名其秒的当掉,有时甚至导致整个程序退出,使用GetLastError()又得不到什么错误,唉,真的好奇怪,是县城的问题还是SOCKET的问题呢?

解决方案 »

  1.   

    多个线程之间共用一个缓冲,一定要解决同步问题。可以选择临界段来实现。你在线程中使用socket,可别忘记捕捉消息呀!
      

  2.   

    多个线程之间共用一个缓冲,一定要解决同步问题。可以选择临界段来实现。
    比如: CEvent等。
      

  3.   

    用WaitForSingleEvent或者WaitForMultEvent等函数还处理对线程访问同一个内存区域的控制。
      

  4.   

    多谢各位,我用了mutext了,也用waitforsingleobject()了.
    soket主要是写在dll中了,在我这边的县城中调用,出现以上问题;我想可能不是多县城共用缓冲区的问题,我将另外一个县城注释掉,仍然会出现这个问题,难道是DLL的问题?这个DLL在另一个WIN32程序中调用,没什么问题,如果不动键盘和鼠标的话,如果一动键盘和鼠标,这个程序就会不声不响的退出,也不出错误框。很奇怪哟!
      

  5.   

    使用容器类CPtrList试试,建立内存链表很好用
      

  6.   

    : loopyifly(深情咸鱼) 
    谢谢,好像不是内存的问题吧。