Linux高性能服务器笔记

Linux API
大端字节序:一个整数的高位字节存储在内存的低地址处,
小端字节序:整数的高位字节存储在内存高地址处

现代PC大多用小端字节序,所以小端字节序又被称为主机字节序
大端字节序采用网络字节序
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

上面这个是大小端字节序的转换
底下这几个是ip地址的 网络字节序和点分十进制的转换
在这里插入图片描述
在这里插入图片描述

新的IP地址转换函数 用于将IP地址和网络字节序进行转换。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

命名socket 也就是把IP地址加端口号 bind给创建的socket

在这里插入图片描述
在这里插入图片描述

int main(int argc,int argv[])
{
        const char *ip=argv[1];
        int port=atoi(argv[2]);
        int backlog=atoi(argv[3]);         //这个很重要,将字符串类型转换 成为int  型

        int sock =socket(PF_INET,SOCK_STREAM,0)//创建socket
        struct sockaddr_in addr;
        addr.sin_family=AF_INET;
        inet_pton(AF_INET,ip,&addr.sin_addr);
        addr.sin_port=htons(port);       //给socket命名,也就是绑定的过程,端口号ip地址都需转换成网络字节序
        int ret =bind(sock,(struct sockaddr* )&addr,sizeof(addr));
        ret= listen(sock,backlog);    //前面已经将字符串形式的backlog转换成为int型,所以这里就额可以直接使用
 }

监听的多少,会有影响影响限制
在这里插入图片描述

也就是说在监听队列里面排队的只能有6个,也就是前面已经建立好的连接就从监听队列里面拿出去了。 所以不影响高并发的接受,,, 影响的只是等待连接的 监听队列中的个数

在这里插入图片描述

客户端发起连接 所用到的0函数调用

在这里插入图片描述

关闭socket 文件描述符

在这里插入图片描述

close 系统调用只是将文件描述符的应用计数减少1,, 只有当引用计数变成0,才真正关闭连接。
所以在fork之后,父子进程都需要使用close进行引用计数的减1.

而shutdown系统调用就可以立即终止 连接,,,,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对于socket的选项设置,来说。

setsockopt的系统调用函数位置是有讲究的。
在这里插入图片描述
在这里插入图片描述

(就是因为 监听socket和连接socket 这两个是不一样的 所以设置的时候,也要针对不同的socket设置相应的选项)

端口复用设置

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值