【C#】探索資料轉送對象1

來源:互聯網
上載者:User

標籤:

 

什麼是“從當前流中讀取一個字串。字串有長度首碼,一次 7 位地被編碼為整數。”

來探索一下:

寫一段簡單的程式:

FileStream fs= new FileStream("d:\\qqq.txt",FileMode.Create);
          var bw = new BinaryWriter(fs, Encoding.UTF8);//通常情況下可以不寫編碼 這裡加上便於理解
          bw.Write("hello world!");
          Console.WriteLine("成功寫入");
          bw.Close();
          fs.Close();


          FileStream fs2 = new FileStream("d:\\qqq.txt", FileMode.Open);
          var br = new BinaryReader(fs, Encoding.UTF8);
          Console.WriteLine(br.ReadString());

 

1.在寫入檔案的時候指定或預設編碼,這樣字元就可以轉換為字元集對應編碼(ASCII 八進位 十六進位)

傳輸或者儲存的時候就會儲存為相應的標準可傳輸的進位(再從這些進位轉到二進位,網路傳輸用二進位)

2.用編輯器開啟時,預設的會給我們轉到10進位,轉成字元集所對應的顯示文字。(電腦很聰明 做事很得體 妹子都喜歡這樣的男朋友吧)

ps:

 

 

來看下剛才寫得qqq.txt檔案,

用UE查看 開頭)16進位 0C = 10進位 12,正好是字元長度.

來看一下 BinaryWriter.Write 

 

讀寫遙相呼應,配合使用。

其他的重載也是一樣的用法。

==================================進階研究==================================

byte[] buffer = new byte[512];
                       while ((size = netstream.Read(buffer, 0, buffer.Length))>0)
                       {
                           fs.Write(buffer, 0, size);
                           len += size;
                       }

 

var br = new BinaryReader(netstream);
Console.WriteLine(br.ReadString());

 

從同一個stream上取資料這兩個方法 得到結果卻不一樣, 為什麼呢?

Read 只會返回byte[]資料對象,  readstring 只能得到BinaryWriter進去的資料。

BinaryWriter 不寫入內容時 readstring為何會出現亂碼?

來實驗幾種情況

 

在不寫BinaryWriter  情況下,接收端處理 readstring 將會把開頭部分資料讀到readstring中,剩餘資料被read讀出來。

 

 

 

傳輸開始後 netstream將會被監聽

 

 

 

發送端加了using後  都不需要關心服務端 接收到的bytes 長度是否大於0,(猜想傳輸監聽有兩種方法1通過是否還有資料傳過來,2.close、dispose狀態的層級更高,直接關閉掉)

 

【C#】探索資料轉送對象1

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.