本帖最后由 tanbiao1987 于 2010-07-12 14:29:22 编辑

解决方案 »

  1.   

    bDataBuf空间足够,iDataBufLen申明为ushort类型,所以转换一下。这里会有什么问题?
      

  2.   

    貌似没发现Socket.Receive(byte[],int,int)这个重载
      

  3.   

    就是这个,只不过最后一个参数用0代替,貌似相当于SocketFlags.None。测试过,结果一样的,还是只能收到2条数据。是否SocketFalgs要换成其他模式?请教
      

  4.   

    只有接收端的代码.....没办法看的
    服务器连续发送几条数据过来,客户端while(true)循环接收
    结果只能接收到前面两条数据,后面还有数据接收不到。

    从这2句话看,很有可能是出现的粘包啦.....Tcp如果连续发送数据...最好自己先定义好一个发送接收的规则http://blog.csdn.net/wxm3630478/archive/2010/05/31/5636446.aspx
      

  5.   

    接收程序不中止,因为服务器端指不定什么时候发数据过来,所以循环接收。
    如果接收不到数据iDataBufLen = (ushort)accsock.Receive(bDataBuf, bDataBuf.Length, 0);
    这里应该会挂起等待吧
    接收程序停一下?是不是处理数据的时候出错了,或者其他原因,会导致数据找不到是谁的了?
    坐等,谢谢了
      

  6.   

    黑大哥正解,按照你发链接的提示,问题解决,果然是黏包了...
    分数不多,照样散分,TKS。