網絡傳輸是大端還是小端 java網絡編程是大端還是小端?
java網絡編程是大端還是小端?網絡傳輸中使用的大端標記方法,即先傳輸權值較高的數字,就像先傳輸12、10、2一樣。即使后者輸了,損失也不算太大。小端與機器有關。如果您要封裝一個數字,比如int,封裝
java網絡編程是大端還是小端?
網絡傳輸中使用的大端標記方法,即先傳輸權值較高的數字,就像先傳輸12、10、2一樣。即使后者輸了,損失也不算太大。小端與機器有關。如果您要封裝一個數字,比如int,封裝后應該是big end。您可以調用htons()或htonl()函數將其轉換為big end(當然,您也可以用big end的方式封裝它,這會有點麻煩)。在傳輸的過程中,當然也是大端,接收的緩沖區(qū)也是大端,但是在讀取int類型時,需要將大端轉換成小端(使用ntohs()函數或ntohl()函數),這樣才能讀取原始的數字??梢韵胂?,如果使用機器A和B進行通信,而A和B的終端序列相同,則中間沒有轉換。但這并不是一個好習慣,因為如果移植到機器的另一端序列,那么就需要修改代碼,嚴重破壞設計。所以最好使用這些函數。
什么是大端模式和小端模式?
當一個數字需要超過一個字節(jié)來存儲時,大端和小端之間存在差異。當只使用一個字節(jié)時,小端放在低位地址并不重要,即小端稱為小端,反之亦然,稱為大端C和C我們需要面對這樣的問題。Java和其他高級語言已經屏蔽了這種差異,不需要額外的處理。在C中,我們可以使用下面的代碼片段來確定它是一個大端還是一個小端聯(lián)合{char C int i}UU。I=1If(U.C==1){//小端}否則{//大端}