本帖最后由 VisualEleven 于 2013-08-28 13:33:05 编辑

解决方案 »

  1.   

    哥,你的循环 while(TRUE), 没有结束。常规的做法应该是 while(开始结束的标识量)
    stop的时候,先设置这个标识量, 再关闭socket
      

  2.   

    你那个处理 WM_RECVDATA 消息的方法也要注意了,你没判断是否从网络成功接收或发送数据,就把本次或上次的数据发过去了,recvBuf里存储的有可能是上次接收的数据,而不是本次的。
      

  3.   

    accept(sock,(SOCKADDR*) &addrClient,&len);这个接收函数是阻塞的吧,要是没有成功接收到数据的话应该会一直阻塞在这条语句,不会向下运行,所以不会把上次接收的数据发送过去的吧