请选择以下不是socket类型的是:C
A). 流式套接字 B). 数据报套接字C). 网络套接字D). 原始套接字
socket是一种特殊的文件描述,以下文件IO操作函数不适应于socket的是:A
A). open() B).close() C). read() D).write()
以下不是合法的IPV4的地址是:B
A). 192.168.0.14 B). 10.87.384.31 C).255.255.255.255 D). 127.0.0.1
以下关于IP地址说法,错误的是:D
A). IP可以采用数字表示,比如0xe80e0832就可以表示一个IP地址
B). IPV6的提出主要目的是解决IPV4的IP地址枯竭的问题
C). 234.76.10.1是一个合法的广播地址
D). ::1是一个合法的IP地址
以下关于端口号的说法,错误的是:B
A). 端口是一个16位的数字,主要用于系统区分不同的网络数据该由那个任务来处
B).为避免冲突,TCP和UDP端口不能同时使用同一端口
C).网络数据是由IP地址和端口以及套接字类型决定的
D).用户编程不可使用1024以下的端口
请简要总结网络字节序形成的原因,以及网络编程中对应的处理方法
网络字节序形成的原因主要是不同的CPU访问内存中的多字节数据的时候,存在大小端问题。 若CPU访问的是字符串,则不存在大小端问题。 X86/X86-64/ARM:存储方式为小端存储 powerpc/mips/ARM作为路由器时:大端存储 处理方法,通过4个函数实现主机字节序和网络字节序的相互转换 #include <arpa/inet.h> 1. uint32_t htonl(uint32_t hostlong); //把uint32_t类型从主机序转换到网络序 2. uint16_t htons(uint16_t hostshort); //把uint16_t类型从主机序转换到网络序 3. uint32_t ntohl(uint32_t netlong); //把uint32_t类型从网络序转换到主机序 4. uint16_t ntohs(uint16_t netshort); //把uint16_t类型从网络序转换到主机序
一些延申,四个函数使用范例,64位数据没有API可以直接调用的处置方法:
https://blog.csdn.net/K346K346/article/details/79053136