Socket可以看成是用户进程与内核网络协议栈的编程接口
Socket不仅可以用于本机的进程间通信,还可以用于网络上不同主机间的通信。

IPv4套接口地址结构
IPv4套接口地址结构通常也称为“网际套接字地址结构”,它以“sockaddr_in”命名,定义在头文件中<netinet/in.h>
struct sockaddr_in{
uint8_t sin_len;//整个sockaddr_in结构体长度
sa_family_t sin_family;//指定该地址家族,在这里必须设为AF_INET
in_port_t sin_port;//端口
struct in_addr sin_addr;//IPV4地址
char sin_zero[8];//暂不使用,一般设置为0;
}
通用地址结构
通用地址结构用来指定与套接字关联的地址
struct sockaddr{
uint8_t sin_len;//整个sockaddr结构体的长度
sa_family_t sin_family;//指定该地址家族
char sa_data[14];//14,有sin_family决定他的形势
}
上面两个地址结构的大小是相等的。
端口号是什么?
一台主机可以用一个ip来标识,那么主机中的进程用什么标识呢,用端口号。知名端口号0到1023分配给了一些固定服务,比如FTP:21、HTTP:80等等。1024到65535动态分配,应用程序的区分用端口号。
字节序
int a=0x12345678
大端模式:

数值小的放到高位,大端模式
小端模式:

数值大的放到低位,小端模式
那么如何测试自己电脑什么模式呢?
int main() {
int a = 0x12345678;
char

本文介绍了Socket作为用户进程与内核网络协议栈接口的角色,涉及IPv4套接口地址结构、通用地址结构以及端口号的概念。讨论了知名与动态端口的分配,并深入探讨了大端和小端模式,提供了检测系统字节序的方法。同时,提到了在网络通信中字节序转换的重要性,以及相关转换函数。最后,简要概述了socket、bind、listen、accept和connect等关键函数在Socket编程中的作用。
最低0.47元/天 解锁文章
343

被折叠的 条评论
为什么被折叠?



