查看CPU使用情况 查看内存
ps命令显示所有运行中的进程等命令
top 命令用来显示CPU的使用情况
free命令用来显示内存的使用情况
select和epoll区别
select,poll,epoll都是IO多路复用的机制
select,poll,epoll本质上都是同步I/O,
select的几大缺点:
(1)每次调用select,都需要把fd集合从用户态拷贝到内核态,这个开销在fd很多时会很大
(2)同时每次调用select都需要在内核遍历传递进来的所有fd,这个开销在fd很多时也很大
(3)select支持的文件描述符数量太小了,默认是1024
2 poll实现
poll的实现和select非常相似,只是描述fd集合的方式不同,
poll使用pollfd结构而不是select的fd_set结构,其他的都差不多。
epoll既然是对select和poll的改进
epoll和select和poll的调用接口上的不同,
select和poll都只提供了一个函数——select或者poll函数。
而epoll提供了三个函数,
epoll_create,创建
epoll_ctl 注册
epoll_wait, 等待
epoll_create是创建一个epoll句柄;
epoll_ctl是注册要监听的事件类型;
epoll_wait则是等待事件的产生。
socket创建server的步骤
TCP编程的服务器端一般步骤是:新建+属性+绑定+监听+接收+收发
1、创建一个socket,用函数socket();
2、设置socket属性,用函数setsockopt(); * 可选
3、绑定IP地址、端口等信息到socket上,用函数bind();
4、开启监听,用函数listen();
5、接收客户端上来的连接,用函数accept();
6、收发数据,用函数send()和recv(),或者read()和write();
7、关闭网络连接;
8、关闭监听;
TCP编程的客户端一般步骤是:
1、创建一个socket,用函数socket();
2、设置socket属性,用函数setsockopt();* 可选
3、绑定IP地址、端口等信息到socket上,用函数bind();* 可选
4、设置要连接的对方的IP地址和端口等属性;
5、连接服务器,用函数connect();
6、收发数据,用函数send()和recv(),或者read()和write();
7、关闭网络连接;