当前位置:首页 > 编程笔记 > 正文
已解决

Linux socket 字节序

来自网友在路上 165865提问 提问时间:2023-09-28 05:22:55阅读次数: 65

最佳答案 问答题库658位专家为你答疑解惑

socket介绍

字节序

验证什么字节序

#include<stdio.h>
int main() {union {short value;char btypes[sizeof(short)];} test;test.value = 0x0102;if(test.btypes[0] == 1 && test.btypes[1] == 2) {printf("大端字节序\n");}else{printf("小端字节序\n");}return 0;
}

字节序转换函数

#include<stdio.h>
#include<arpa/inet.h>int main() {unsigned short a = 0x0102;unsigned short at = htons(a);printf("a: %x\n", a);printf("b: %x\n", at);char buf[4] = {192, 168, 1, 100};int num = *(int*)buf;printf("%x\n", num);unsigned int num_ts = htonl(num);unsigned char *p = (char*)&num_ts;printf("%d %d %d %d", *p, *(p+1), *(p+2), *(p+3));return 0;
}

socket地址

IP地址转换

#include<stdio.h>
#include<arpa/inet.h>int main() {char buf[] = "192.168.1.4";unsigned int num = 0;inet_pton(AF_INET, buf, &num);unsigned char* p = (unsigned char*) &num;printf("%d %d %d %d\n", *p, *(p + 1), *(p + 2), *(p + 3));char ip[16] = "";const char * str = inet_ntop(AF_INET, &num, ip, 16);printf("%s\n", str);return 0;
}

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"Linux socket 字节序":http://eshow365.cn/6-15038-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!