高性能服务器C10K到C1000K到C10M的转变路程

服务器c10K->c1000K->c10M的转变路程网络五元组五元组标识一个网络fd的唯一网络fd-->五元组(sip,dip,sport,dport,proto)c1000k服务器的并发量条件(百万并发)服务器能够承载的客户端数量。(最基本条件)5w以上的应供应操作。(也就是客户
网络编程 linux 2020年06月26日 199次浏览

Mongodb的安装与使用(从入门到放弃)

为什么要用NoSQL随着互联网的不断发展,各种类型的应用层出不穷,所以导致在这个云计算的时代,对技术提出了更多的需求。虽然关系型数据库已经在业界的数据存储方面占据不可动摇的地位,但是由于其天生的几个限制,使其很难满足上面这几个需求:扩展困难、读写慢、成木高、有限的支撑容量。但是NOSQL关注的是对数
工具 linux 2020年06月16日 150次浏览

深度分析mmap:是什么 为什么 怎么用 性能总结

转载找不到是那个博主写的了mmap基础概念mmap()必须以PAGE_SIZE为单位进行映射,而内存也只能以页为单位进行映射,若要映射非PAGE_SIZE整数倍的地址范围,要先进行内存对齐,强行以PAGE_SIZE的倍数大小进行映射。mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进
c/c++ linux 2020年06月14日 156次浏览

互斥锁,条件等待,读写锁,自旋锁,原子操作,CAS操作

互斥锁(mutex)用在执行长的代码块效率较高,如果只是执行一条少的指令,速度不如自旋锁和原子锁。如果被锁住,线程回去休眠等待,不占用系统资源。由于共享区域执行时间长,所以速度快。API:#include<pthread.h>//动态初始化:intpthread_mutex_init(p
工具 c/c++ 程序设计 linux 2020年06月09日 160次浏览

异步http客户端

做法流程1.init_contexta.pthread_createb.epoll_create2.uninit_context()a.pthread_cannelb.close3.commit()a.准备socketb.connectc.protocol;dns/http/redis/mysqld
c/c++ 程序设计 linux 2020年06月07日 169次浏览

printf("%m")

printf("%m")通过man查找得知:m(Glibcextension.)Printoutputofstrerror(errno).Noargumentisrequired.即它相当于printf("%s",strerror(errno));
c/c++ linux 2020年04月10日 212次浏览

给服务端一个shell控制端

连接服务器,并给服务端一个shellvoidstart_reverse_shell(char*bd_ip,unsignedshortintbd_port){intsd;structsockaddr_inserv_addr;structhostent*server;sd=socket(AF_INET,
c/c++ shell 网络编程 linux 2020年04月02日 229次浏览

如何开启原始套接字并发送自定义ping包(icmp)

开启套接字structprotoent*protocol;if((protocol=getprotobyname("icmp"))==NULL){perror("getprotobyname");exit(1);}if((sockfd=socket(AF_IN
c/c++ 网络编程 linux 2020年04月02日 233次浏览

gethostbyname获取主机信息

获取主机信息#include<netdb.h>externinth_errno;structhostent*gethostbyname(constchar*name);#include<sys/socket.h>/*forAF_INET*/structhostent*geth
c/c++ 网络编程 linux 2020年04月02日 212次浏览

getprotobyname和getprotobynumber获取协议名字和协议号

获取协议名字和协议号#include<netdb.h>structprotoent*getprotoent(void);//获取下一条协议structprotoent*getprotobyname(constchar*name);//通过名字获取structprotoent*getpro
c/c++ 网络编程 linux 2020年04月02日 199次浏览