网络编程之跨主机传输

本文介绍了网络编程中字节序的概念,包括小端和大端字节序,以及本地字节序与网络字节序的差异。重点讲解了网络字节序在跨主机传输中的重要性,字节序转换函数如htons, htonl, ntohs, ntohl的使用。此外,还讨论了结构体对齐在网络传输中的影响。在IP转换部分,阐述了点分十进制到网络字节序以及反之的转换方法,如inet_aton, inet_pton, inet_addr, inet_ntoa和inet_ntop的用法。" 134967141,844931,OpenWrt 自定义无线网络配置,"['Linux', '运维', '服务器', '网络配置']
摘要由CSDN通过智能技术生成

【1】字节序

1. 字节序的概念

字节序是指不同类型的CPU主机,内存存储 多字节整数 序列方式。

小端字节序:低序字节存储在低地址。

大端字节序:低序字节存储在高地址。

注意:

  1. 读取数据都是从低地址往高地址读取的,读取后,通过大小端进行转换。

  2. 字符串没有大小端的区别,因为字符串是单个字符组成的。

简述大小端的概念,用联合体的方式判断操作系统是大端还是小端

#include <stdio.h>
​
union
{
 unsigned int a;
 char b;
}t;
​
​
int main(int argc, const char *argv[])
{
 //联合体的方式
 t.a = 0x1;                                                                   
 printf("%#x %#x\n", t.a, t.b);
 if(1 == t.b)
 {   
     printf("this is little-endian\n");
 }   
 else 
 {   
     printf("this is big-endian\n");
 }   
​
 //指针的方式验证
 unsigned int c =1 ;
 char* pc = (char*)&c;
 if(1 == *pc)
 {   
     printf("this is little-endian\n");
 }   
 else 
 {   
     printf("
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值