Socket编程---API

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值