networkstream接受數據

       #region ReceiveData
        //从网络读取指定长度的数据
      
        //从网络读取指定长度的数据 ,存放在buff中
        public static byte[] ReceiveData(NetworkStream stream, int BufferSize)
        {
        
          List<byte> list = new List<byte>();
          byte[] buffer = new byte[BufferSize]; // 开辟缓冲区
        
          int i = 0;
         do
          {
            int  len = stream.Read(buffer, 0, BufferSize);
                if(len == BufferSize)
               {
                list.AddRange(buffer);
                i = 1;
               }
               else
                {
            // 这里说明已经读取到流的末尾了,已没有 BufferSize 大小了
            // 一个一个的放入集合
              for(int index = 0; index <= len; index++)
              list.Add(buffer[index]);
              i=0 ;
                }
          } while (i==1);

            return list.ToArray();

        }
        #endregion

        #region recvstring
        public string recvstring(NetworkStream stream, int BufferSize)
        {
            StringBuilder recv = new StringBuilder();
            byte[] buf = new byte[BufferSize];
            int recvCnt = 0;
            while (true)
            {
                recvCnt =stream.Read(buf, 0, buf.Length);
                recv.Append(System.Text.Encoding.ASCII.GetString(buf, 0, recvCnt));
                if (recvCnt != 1024)
                    break;
            }
            return recv.ToString(); 

        }
        #endregion

posted on 2009-05-21 17:18 peter.deng 阅读(246) 评论(1) 编辑 收藏

导航

公告

统计