函数原型:
networkstream.Read(byte [] buffer, int offest, int size)文档里讲,好像..buffer是存储的数组,offest是buffer开始存储的位置,如从头即0
size 是 从networkstream中读取的字节数我现在想写个程序,从C 到 S端 之间 用byte[]
可是发送的长度  即bytes.length是不确定的..
我怕这样子在接收时,,,因为长度不和,会有错误,,
不知道有没有好办法,,,,避免的.谢谢...

解决方案 »

  1.   

    Read返回的值就是真正读到的字节数,根据这个值就可以进行后续处理了。
      

  2.   

    嗯,我知道您的意思,,,,可是, 如果在S端定义的byte[]的长度比 C端 发送的byte[]的长度短时,就有问题了.

    C:
    byte[] byts =new byte[4];
    // 把str="asdf"  给byts
    //发送S: 
    //接收
    messagebox.show(stream.read(byts,0,3).tostring());//就有问题了 = 3
      

  3.   

    没有问题,数据没读完的话,还存在缓冲区中的,可以继续读,根据NetworkStream的DataAvailable的值就可以判断是否还有数据未读,可以一直循环到读完为止的。
      

  4.   

    谢谢,帮了我大忙...
    还以为要用个先行的定长byte[],先告诉对方要发包的长度了呢..这样不好玩了..呵呵