99国产精品欲av蜜臀,可以直接免费观看的AV网站,gogogo高清免费完整版,啊灬啊灬啊灬免费毛片

網易首頁 > 網易號 > 正文 申請入駐

相同的結構體,服務端和客戶端字節長度差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.

相關推薦
熱點推薦
75歲港星宣布征婚,自曝37歲兒子內地求學失敗,回家躺平需要他養

75歲港星宣布征婚,自曝37歲兒子內地求學失敗,回家躺平需要他養

探源歷史
2025-07-21 07:29:49
港媒爆料趙雅芝日子挺苦的,被3個兒子長期啃老,71歲還不能老!

港媒爆料趙雅芝日子挺苦的,被3個兒子長期啃老,71歲還不能老!

木子愛娛樂大號
2025-07-05 09:37:33
又現跨省聯動:汕尾市長調往揚州,揚州市長調往寧德

又現跨省聯動:汕尾市長調往揚州,揚州市長調往寧德

觀察者網
2025-07-23 14:39:26
新華社快訊:“十四五”期間,全國公安機關共破獲電信網絡詐騙案件173.9萬起

新華社快訊:“十四五”期間,全國公安機關共破獲電信網絡詐騙案件173.9萬起

新華社
2025-07-23 15:27:09
杭州偷水男“社會性死亡”:正臉曝光,工作毀了,連公司都被牽連

杭州偷水男“社會性死亡”:正臉曝光,工作毀了,連公司都被牽連

嘆知
2025-07-22 15:45:43
汪峰組織兩家人日本度假,森林北9歲女兒首曝光,長得比醒醒漂亮

汪峰組織兩家人日本度假,森林北9歲女兒首曝光,長得比醒醒漂亮

瓜農娟姐
2025-07-23 18:29:01
公職人員下班后兼職送三小時外賣:“像打游戲做任務”一樣快樂|封面頭條

公職人員下班后兼職送三小時外賣:“像打游戲做任務”一樣快樂|封面頭條

封面新聞
2025-07-22 15:48:22
或許遺憾才是人生的常態:C羅本不會離開皇馬,更不應在尤文虛度

或許遺憾才是人生的常態:C羅本不會離開皇馬,更不應在尤文虛度

K唐伯虎
2025-07-21 07:19:39
470000人集體大逃亡!以色列萬萬沒想到歷史會又一次倒置重演

470000人集體大逃亡!以色列萬萬沒想到歷史會又一次倒置重演

南方健哥
2025-07-23 18:37:44
山西、陜西兩地2025年養老金調整都漲2%嗎?養老金4000元漲80元?

山西、陜西兩地2025年養老金調整都漲2%嗎?養老金4000元漲80元?

文雅筆墨
2025-07-23 17:09:26
酷玩樂隊演唱會“出軌”的女方:來自百億老錢家族,捐贈大樓給哈佛大學

酷玩樂隊演唱會“出軌”的女方:來自百億老錢家族,捐贈大樓給哈佛大學

封面新聞
2025-07-22 19:48:45
重慶雙胞胎兄弟分別被清華、北大錄取

重慶雙胞胎兄弟分別被清華、北大錄取

封面新聞
2025-07-23 14:55:04
“絕經和出道同時來?”上海街頭驚現她的巨幅海報!網友:笑著笑著就哭了

“絕經和出道同時來?”上海街頭驚現她的巨幅海報!網友:笑著笑著就哭了

環球網資訊
2025-07-23 10:48:19
遂寧市紀委回應“公職人員兼職送外賣”:已了解該情況

遂寧市紀委回應“公職人員兼職送外賣”:已了解該情況

極目新聞
2025-07-23 11:17:30
郭麒麟,正式開除德云社。

郭麒麟,正式開除德云社。

會說話的舌
2025-07-18 13:40:49
一聲巨響!俄羅斯轟炸波蘭企業,波蘭頭上懸了3年的劍終于落地了

一聲巨響!俄羅斯轟炸波蘭企業,波蘭頭上懸了3年的劍終于落地了

文雅筆墨
2025-07-21 09:10:43
大火燒毀獲賠償,重建2000平洛杉磯豪宅,易建聯要花多少錢?

大火燒毀獲賠償,重建2000平洛杉磯豪宅,易建聯要花多少錢?

東球弟
2025-07-23 14:12:13
小姑子在嫂子訂婚宴上搶走三金,果斷退婚:不敢嫁“強盜”

小姑子在嫂子訂婚宴上搶走三金,果斷退婚:不敢嫁“強盜”

惟來
2025-07-22 18:20:02
足協杯-申花vs河南首發:4外援PK5外援 吳曦、蔣圣龍、王上源先發

足協杯-申花vs河南首發:4外援PK5外援 吳曦、蔣圣龍、王上源先發

直播吧
2025-07-23 17:36:13
三伏天是男人進補的黃金期,多吃3道“扶陽菜”,精力充沛身體壯

三伏天是男人進補的黃金期,多吃3道“扶陽菜”,精力充沛身體壯

鬼菜生活
2025-07-23 17:38:39
2025-07-23 20:07:00
程序員古耕 incentive-icons
程序員古耕
程序員、網文作家、自媒體人
555文章數 371關注度
往期回顧 全部

科技要聞

別自嗨了!XREAL徐馳:AI眼鏡只有5歲智商

頭條要聞

印度、孟加拉關切雅魯藏布江下游水電站工程 中方回應

頭條要聞

印度、孟加拉關切雅魯藏布江下游水電站工程 中方回應

體育要聞

英格蘭最紅球星 也是加勒比島國驕傲

娛樂要聞

汪峰森林北同游日本 各帶各娃互不耽誤

財經要聞

律師解析娃哈哈遺產案:遺囑是最大變數

汽車要聞

德系大招放盡 場地極限測試全新奧迪A5L

態度原創

藝術
旅游
健康
家居
教育

藝術要聞

故宮珍藏的墨跡《十七帖》,比拓本更精良,這才是地道的魏晉寫法

旅游要聞

熱聞|清明假期將至,熱門目的地有哪些?

呼吸科專家破解呼吸道九大謠言!

家居要聞

晨曦生活 明媚而放松

教育要聞

2025年天津高考提前批投檔線分析:中國民航大學訂單班受熱捧

無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 曲松县| 都昌县| 黎城县| 南开区| 莱西市| 紫阳县| 东乡县| 襄樊市| 金华市| 云龙县| 山阴县| 恩平市| 星座| 隆安县| 莆田市| 开鲁县| 遵化市| 峨眉山市| 鄄城县| 大理市| 墨脱县| 绥芬河市| 华阴市| 巫溪县| 上犹县| 资中县| 汤原县| 厦门市| 科技| 五寨县| 西乌珠穆沁旗| 石门县| 万宁市| 萍乡市| 福清市| 卢氏县| 乐都县| 玛纳斯县| 井研县| 沅陵县| 石狮市|