国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

【netstream】探索數據傳輸對象1

2019-11-17 02:16:31
字體:
來源:轉載
供稿:網友

【netstream】探索數據傳輸對象1

image

什么是“從當前流中讀取一個字符串。字符串有長度前綴,一次 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,正好是字符長度.

image

來看一下 BinaryWriter.Write

image

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

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

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

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為何會出現亂碼?

來試驗幾種情況

image

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

image

傳輸開始后 netstream將會被監聽

image

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

image


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 聂荣县| 色达县| 南安市| 綦江县| 广汉市| 洞头县| 保山市| 铁岭县| 云浮市| 江川县| 小金县| 五华县| 东莞市| 临泽县| 察隅县| 两当县| 郴州市| 襄汾县| 普格县| 肃南| 凉山| 钦州市| 江川县| 叶城县| 磴口县| 商城县| 惠来县| 中江县| 沅陵县| 泰兴市| 建瓯市| 南和县| 新平| 佛冈县| 手游| 镇赉县| 长武县| 包头市| 阿坝| 博乐市| 昭觉县|