本帖最后由 VisualEleven 于 2010-12-21 11:54:48 编辑

解决方案 »

  1.   

     recv(sockServer,recvBuffer,200,0);看到这样的代码就知道肯定会错,你知道它到底接收了多少字节?
    发送也是类似的,不检查返回值直接处理recv,send的数据的行为必然是错误的。
      

  2.   

    int nLen = recv(sockServer,recvBuffer,200,0)nLen才是接收字节数,200是buff长度而已
      

  3.   

    如果是发给iis的就很简单google iis 200kiis本身有系统限制
      

  4.   

    缓冲区完全可以设置大一些的,socket默认的接收缓冲区和接收缓冲区是8K(windows,linux好像是15~16k),而且如1楼所说,对接收的字节数也要加错误处理。
      

  5.   

    这家伙说的很对。
    如果你确定那边已经发完,那么你在这边收的时候需要对recv的返回值做一个累加,直到你收的数目恰好等于你发送的数目。
      

  6.   

    对于recv和send函数不判断返回值还想对?recv里的长度参数,只是你希望接收的长度,并不是一定接收到的长度,必须根据返回值确定实际接收了多少。一看就是孙鑫教出来的,孙鑫教程里从来不提判断函数返回值的问题