<cite id="ffb66"></cite><cite id="ffb66"><track id="ffb66"></track></cite>
      <legend id="ffb66"><li id="ffb66"></li></legend>
      色婷婷久,激情色播,久久久无码专区,亚洲中文字幕av,国产成人A片,av无码免费,精品久久国产,99视频精品3
      網易首頁 > 網易號 > 正文 申請入駐

      相同的結構體,服務端和客戶端字節長度差8個字節,咋回事呢?

      0
      分享至

      代碼報了個錯:“byte array size is smaller than the size of the structur”,意思就是byte數組的大小小于結構體的大小,這個錯報出來的原因是我代碼中有個邏輯,需要將byte數組轉換成結構體,但很顯然,我沒有轉換成功,這是咋回事呢?



      這個錯報得我莫名其妙的,找了一個小時左右都沒找到問題出在哪,但是最后發現問題的時候,我甚至有些無語。在說清楚問題到底出在哪之前,我們得先了解下代碼的業務邏輯,然后您就知道為什么開始我覺得莫名其妙了!

      代碼的業務邏輯是這樣的,我們的業務中有一個服務端和很多個客戶端,客戶端會定期給服務端發送消息,消息是以結構體的形式發送的,當然,在發送消息的時候,需要將結構體轉換成byte數組。

      為了確保發送消息的一致性,我特地封裝了一個專門用來處理消息的函數庫,這樣就能確保每個客戶端在發送和接收消息的時候不會出現任何差錯。

      但是,差錯偏偏就出現了!在某個客戶端上就出現了文章開頭的那個錯!

      經過調試,我發現所有客戶端發送的消息內容都是一樣的,并沒有任何區別。

      結構體屬于基本數據類型,因此在定義的時候,長度就已經確定了,我在服務端進行調試,發現結構體的長度為288,但是,服務端接收到的byte數組長度卻只有280,如此一來,在將byte轉換成結構體的時候,因為長度不一致,導致了轉換失敗。

      前面說了,我專門封裝了一個消息處理的庫,服務端和客戶端使用的是庫里面同一個結構體,不可能會出現兩邊長度不一致的情況。

      事出反常必有妖!

      服務端是同一個服務端,因此問題只可能出現在客戶端的代碼上!因為我們的客戶端有不同版本,每個版本有單獨的代碼,而代碼只有略微差別。

      我拿了不同版本的客戶端代碼進行調試,詭異的是,出問題的那個客戶端在發送消息時,結構體的長度偏偏就是280,而其他客戶端在發送消息時,結構體長度卻是288!

      一個小時都過去了,我硬是沒找出問題所在,于是,我只能使用笨辦法,那就是作對比,看看出問題的客戶端代碼和沒出問題的客戶端代碼有什么不同。

      這么一對比,就讓我找到了差異點,原來,出問題的客戶端代碼在編譯的時候勾選了“首選32位”,我一拍腦袋:“原來是這樣!”

      這個結構體的內容很簡單,里面是由一個Int64字段+兩個Int32字段+一個指針+一個指定了長度的字符串字段組成,其中,字符串的長度被指定為255。



      公司代碼是用C#編寫的,在C#中,正常情況下,Int64所占字節數為8位,Int32所占字節數為4位,指針所占字節數為8位。

      而指針類型在32位環境和64位環境里面所占用的字節是不一樣的,在32位環境里占4個字節,而在64位環境里則占8個字節!

      結語

      因此,最終真相大白!于是我去除勾選“首選32位”,再次編譯,發現結構體的長度變成了288!

      說到這里,肯定有人關心為什么項目被勾選了“首選32位”,因為我一直沒有將代碼上傳代碼庫,所以具體是怎么發生的,其實我也不知道,也許是IDE默認就給勾上了,但是因為一直沒測到這,所以問題一直沒被發現。

      聲明:個人原創,僅供參考

      特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關推薦
      熱點推薦
      代孕、陪睡僅開胃菜!48小時傳來3大“噩耗”,郭晶晶也沒逃過

      代孕、陪睡僅開胃菜!48小時傳來3大“噩耗”,郭晶晶也沒逃過

      秋姐居
      2026-02-01 11:29:20
      審批通過!他們要來武漢開演唱會,連唱4天

      審批通過!他們要來武漢開演唱會,連唱4天

      越喬
      2026-02-03 15:57:04
      CBA最新排名!廣廈爆冷輸球第1不穩,上海雙喜臨門,黑馬卷土重來

      CBA最新排名!廣廈爆冷輸球第1不穩,上海雙喜臨門,黑馬卷土重來

      老葉評球
      2026-02-02 22:23:19
      馬斯克牽手女伴亮相!齊利斯穿金色亮片裙閃耀,早已被準婆婆認可

      馬斯克牽手女伴亮相!齊利斯穿金色亮片裙閃耀,早已被準婆婆認可

      八八尚語
      2026-02-02 12:54:22
      岳云鵬徒弟尚筱菊爆料:在德云社要壓歲錢是暴利行業,扛打就行!

      岳云鵬徒弟尚筱菊爆料:在德云社要壓歲錢是暴利行業,扛打就行!

      觀察鑒娛
      2026-02-03 09:30:09
      心梗與戴帽子有關?醫生再次勸告:過了60歲后,這幾件事要警惕!

      心梗與戴帽子有關?醫生再次勸告:過了60歲后,這幾件事要警惕!

      小胡軍事愛好
      2026-02-03 19:51:45
      亞洲羽毛球錦標賽:胡哲安降維打擊,國羽5-0中國澳門首戰告捷

      亞洲羽毛球錦標賽:胡哲安降維打擊,國羽5-0中國澳門首戰告捷

      釘釘陌上花開
      2026-02-03 20:01:37
      遼寧加時賽15-2打崩江蘇:趙繼偉16+7+8升歷史第9 莫蘭德12+21

      遼寧加時賽15-2打崩江蘇:趙繼偉16+7+8升歷史第9 莫蘭德12+21

      醉臥浮生
      2026-02-03 21:58:21
      它是“長壽菜”,一吃通便,二吃護眼,三吃降壓,中老年人要多吃

      它是“長壽菜”,一吃通便,二吃護眼,三吃降壓,中老年人要多吃

      江江食研社
      2026-02-02 14:30:08
      設計時速350公里、建設總里程708公里,這兩條重要高鐵即將開工!

      設計時速350公里、建設總里程708公里,這兩條重要高鐵即將開工!

      交建動態
      2026-02-02 19:25:06
      女人染上“性癮”是一種怎樣的體驗?可能和你想象得不同

      女人染上“性癮”是一種怎樣的體驗?可能和你想象得不同

      紙上的心語
      2025-11-23 11:36:00
      好消息扎堆!東海艦隊喜提2艘055,福建艦衛星照直接把美媒看懵了

      好消息扎堆!東海艦隊喜提2艘055,福建艦衛星照直接把美媒看懵了

      文雅筆墨
      2026-02-03 20:15:00
      她赴英留學,卻與上千外國男子有染并拍成視頻,父母與她斷絕關系

      她赴英留學,卻與上千外國男子有染并拍成視頻,父母與她斷絕關系

      阿胡
      2026-01-21 17:34:15
      國乒前主教練放狠話,無論代價多大,今年必須把英雄樊振東請回來

      國乒前主教練放狠話,無論代價多大,今年必須把英雄樊振東請回來

      以茶帶書
      2026-02-03 16:40:41
      竇靖童:我媽錢多到用不完,但窮苦潦倒的爸爸,成了我如今的心病

      竇靖童:我媽錢多到用不完,但窮苦潦倒的爸爸,成了我如今的心病

      璀璨幻行者
      2026-01-20 04:29:30
      我軍已提前摸底,美軍一旦對上海發動打擊,中方有把握一擊必勝

      我軍已提前摸底,美軍一旦對上海發動打擊,中方有把握一擊必勝

      混沌錄
      2026-02-01 21:55:06
      90年代中國最經典的18部電視劇

      90年代中國最經典的18部電視劇

      越佳美
      2026-02-01 15:18:39
      世衛組織呼吁:停止使用電熱水壺,否則會誘發癌癥?告訴你真相!

      世衛組織呼吁:停止使用電熱水壺,否則會誘發癌癥?告訴你真相!

      39健康網
      2026-02-02 21:02:51
      建國初公安機關審訊一特務,他卻低聲透露:我撫養過毛澤東的孩子

      建國初公安機關審訊一特務,他卻低聲透露:我撫養過毛澤東的孩子

      歷史龍元閣
      2026-01-30 08:55:09
      震驚:李昊留洋夢碎居然被徐彬耽誤了,青島西海岸有苦說不出

      震驚:李昊留洋夢碎居然被徐彬耽誤了,青島西海岸有苦說不出

      姜大叔侃球
      2026-02-03 11:54:21
      2026-02-03 22:27:00
      程序員古耕 incentive-icons
      程序員古耕
      程序員、網文作家、自媒體人
      597文章數 387關注度
      往期回顧 全部

      科技要聞

      1.25萬億美元!xAI員工贏麻了

      頭條要聞

      周生生回應"足金掛墜檢出鐵銀鈀":完全符合國家標準

      頭條要聞

      周生生回應"足金掛墜檢出鐵銀鈀":完全符合國家標準

      體育要聞

      “也許我的一小步,會成為中國足球的一大步”

      娛樂要聞

      張柏芝帶大兒子澳洲度假,18歲Lucas又高又帥

      財經要聞

      中央一號文件:扎實推進鄉村全面振興

      汽車要聞

      上汽決定不再等那個“正確答案”了

      態度原創

      數碼
      房產
      旅游
      時尚
      本地

      數碼要聞

      羅技G正式公布G325 LIGHTSPEED無線耳機,定價79.99美元

      房產要聞

      大盤最低殺到8000+/㎡!???9盤,最新房價曝光!

      旅游要聞

      江西尋烏:云瀑瀉山巒 風車霧??棶嬀?/h3>

      大衣,白色的更優雅不凡!

      本地新聞

      云游中國|撥開云霧,巫山每幀都是航拍大片

      無障礙瀏覽 進入關懷版