<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.

      相關推薦
      熱點推薦
      2026年春晚,釋放了3個信號,普通人要清醒

      2026年春晚,釋放了3個信號,普通人要清醒

      老特有話說
      2026-02-25 22:03:08
      俄烏沖突四周年:戰場上的那個“傻士兵”,得到了雙方的憐憫眷顧

      俄烏沖突四周年:戰場上的那個“傻士兵”,得到了雙方的憐憫眷顧

      一紙情書s
      2026-02-25 22:44:24
      楊紫真的已經瘦到天賦上限了,這也太牛了…

      楊紫真的已經瘦到天賦上限了,這也太牛了…

      手工制作阿殲
      2026-02-22 13:25:34
      000638,突發“天地板”!

      000638,突發“天地板”!

      中國基金報
      2026-02-27 14:48:50
      女子嘴角長水泡沒重視 當晚被宣告腦死亡

      女子嘴角長水泡沒重視 當晚被宣告腦死亡

      閃電新聞
      2026-02-26 15:27:39
      感動!李弘權備戰世預賽未能陪老婆生孩子,賽后發照片與孩子合影

      感動!李弘權備戰世預賽未能陪老婆生孩子,賽后發照片與孩子合影

      籃球資訊達人
      2026-02-27 00:31:05
      東北男人“新戰袍”:4000元的迪桑特,成了體制內的隱形工牌

      東北男人“新戰袍”:4000元的迪桑特,成了體制內的隱形工牌

      毒sir財經
      2026-02-25 23:40:03
      閨蜜主動來伺候我坐月子,以為是愛,她有天彎腰系鞋帶,我才醒悟

      閨蜜主動來伺候我坐月子,以為是愛,她有天彎腰系鞋帶,我才醒悟

      莎莉說情感
      2026-02-25 15:10:03
      你干過哪些陰暗齷齪的事?網友:最后一個真的好炸裂好真實

      你干過哪些陰暗齷齪的事?網友:最后一個真的好炸裂好真實

      帶你感受人間冷暖
      2026-02-17 01:00:24
      “指紋鎖”正在退出中國家庭?開鎖師傅說出實情,讓我恍然大悟!

      “指紋鎖”正在退出中國家庭?開鎖師傅說出實情,讓我恍然大悟!

      空間設計
      2025-11-26 12:32:03
      重磅!新華社官宣:我國造出全球首款纖維芯片,打破芯片規則

      重磅!新華社官宣:我國造出全球首款纖維芯片,打破芯片規則

      情系雨櫻花葉
      2026-02-27 18:21:36
      一路走好!2026年春晚才過10天,已有4位名人接連去世,令人唏噓

      一路走好!2026年春晚才過10天,已有4位名人接連去世,令人唏噓

      阿訊說天下
      2026-02-26 11:23:19
      3月一口氣放出10部好萊塢大片?!

      3月一口氣放出10部好萊塢大片?!

      君君電影院
      2026-02-26 22:05:14
      中俄剛說打通圖們江,第一個跳出來反對的,一點不讓人意外

      中俄剛說打通圖們江,第一個跳出來反對的,一點不讓人意外

      聞香閣
      2026-01-04 11:16:35
      魅族暫停手機研發!李楠曝光原因:當年我想辦法促成阿里入股 但一手對A最終失效

      魅族暫停手機研發!李楠曝光原因:當年我想辦法促成阿里入股 但一手對A最終失效

      快科技
      2026-02-27 12:18:14
      越老越帥的男星我只服這4位,不整容,不油膩,連褶子都魅力十足

      越老越帥的男星我只服這4位,不整容,不油膩,連褶子都魅力十足

      眼底星碎
      2026-02-27 13:11:12
      耗資12億建世界最高佛,如今水喝不起拜不起

      耗資12億建世界最高佛,如今水喝不起拜不起

      時光流轉追夢人
      2026-02-20 13:09:13
      002261,超50萬手封板!算力概念股,集體走強!

      002261,超50萬手封板!算力概念股,集體走強!

      證券時報e公司
      2026-02-27 10:49:00
      中國男子在俄討薪遭毆打!別再迷信俄友好,去異國打工真不是天堂

      中國男子在俄討薪遭毆打!別再迷信俄友好,去異國打工真不是天堂

      老馬拉車莫少裝
      2026-02-27 00:56:33
      你經歷過哪些殺人誅心的事?網友:所以沒有婆婆拆散不了的家

      你經歷過哪些殺人誅心的事?網友:所以沒有婆婆拆散不了的家

      帶你感受人間冷暖
      2026-02-11 10:54:58
      2026-02-27 21:52:49
      程序員古耕 incentive-icons
      程序員古耕
      程序員、網文作家、自媒體人
      599文章數 389關注度
      往期回顧 全部

      科技要聞

      單張不到五毛!谷歌深夜發布Nano Banana 2

      頭條要聞

      殯儀館工作人員紅衣、黃發主持老人告別儀式 館方致歉

      頭條要聞

      殯儀館工作人員紅衣、黃發主持老人告別儀式 館方致歉

      體育要聞

      一場必須要贏的比賽,男籃何止擊敗了裁判

      娛樂要聞

      郭晶晶霍啟剛現身香港藝術節盡顯恩愛

      財經要聞

      沈明高提共富建議 百姓持科技股國家兜底

      汽車要聞

      嵐圖泰山黑武士版3月上市 搭載華為四激光智駕方案

      態度原創

      時尚
      手機
      親子
      數碼
      教育

      冬季穿搭要避開臃腫感!配色不老氣、穿衣不隨意,越看越高級

      手機要聞

      摩托羅拉新機曝光,后蓋有世界杯標志

      親子要聞

      這個社會允許幼兒哭鬧的年齡是幾歲

      數碼要聞

      JBL新配色音箱,防水還能組立體聲

      教育要聞

      面對老師不合理的要求,請寶媽們教孩子向這個七歲女孩學習!

      無障礙瀏覽 進入關懷版