前2天调试的程序,老出错,
今天下午重写了程序,稍微乐观点。
这次程序出错只会在最后的时候出错。就是最后一次收数据出错,返回了10014。
直接最后一次接收不到数据。
郁闷呢
不知道为什么。还有一个奇怪的现象,用比10M大的文件,不会出错(用20MB的测试的)
用比10MB小的不会出错(用了5MB,1MB,100K,1K测试都不会出错。)
偏偏这个10MB的文件出错。郁闷。检查接受的Buffer,最后一次没有收到数据,返回10014,说我Buffer地址不对,
我惆怅了。

解决方案 »

  1.   

    本帖最后由 VisualEleven 于 2010-10-19 17:52:34 编辑
      

  2.   

    看看是不是你的recv中的参数指定的有问题
      

  3.   

    int nRealRecvSize = recv(m_sRecSock ,(char *)pRecvBufTmp,REV_BUFF_SIZE,0); 
    你的recv的第3个参数不对吧,每次都是REV_BUFF_SIZE吗?
    你的第2个参数指针变化了,但是你的长度并没有变化,这样的话数组溢出了
      

  4.   

    那就是说每次都要计算接受的大小?
    意思就是说,
    假如第二个参数的大小为64BYTE,而第三个参数用128去接
    这个时候就会数组溢出?也就报10014的错误了?