Linux网络编程
文章平均质量分 71
Dave_L
这个作者很懒,什么都没留下…
展开
-
muduo源码学习笔记
1.大并发服务器架构介绍服务器性能杀手:数据拷贝:缓存环境切换:理性创建线程)该不该用多线程,单线程好还是多线程好,单核服务器(采用状态机编程,效率最佳)内存分配:内存池锁竞争...原创 2021-04-24 20:39:11 · 160 阅读 · 0 评论 -
TCP/IP网络编程 - 自用理解笔记(续)
CSDN一篇文章内容多了一丢丢竟然会很卡…新开一篇…12 I/O复用构建并发服务器时,只要客户端请求就会创建新进程。这样的方式需要极大代价(大量运算和内存空间,IPC也会增加程序编写难度)。I/O复用实现在不创建进程的同时向多个客户端提供服务。int select(int maxfd, fd_set *readset, fd_set *writeset, fd_set *exceptset, const struct timeval *timeout)将多个文件描述符集中在一起统一监视。(原创 2021-01-11 17:14:52 · 246 阅读 · 0 评论 -
linux网络编程 - gethostbyname() + gethostbyaddr() + 使用 gethostbyaddr() 返回为空
struct hostent * gethostbyaddr(const char *addr, socklen_t len, int family);gethostbyaddr.c采用这种方法获取信息,需要将不成功的 ip与对应域名添加到hosts文件,否则会失败(如下百度ip失败,本地成功)将百度ip与域名对应关系添加到/etc/hosts中,就可以成功了。没找到源码,不知道是怎么实现的,为什么已经有了ip,程序还会去hosts文件内查询呢?不过似乎不成功的原因是目标ip不支持这种查询方原创 2021-01-08 17:59:56 · 797 阅读 · 2 评论 -
TCP/IP网络编程 - 自用理解笔记
服务器端的clnt_sock负责数据交换,serv_sock负责与客户端建立连接。具体的read() , write()执行过程。回声服务器端echo_server.c#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <arpa/inet.h>#include <sys/socket.h>c原创 2020-12-30 17:05:33 · 293 阅读 · 0 评论 -
项目Linux高性能服务器——个人总结(待扩充
Linux高性能服务器个人总结:服务器并发模式:半同步/半反应堆模式主线程充当异步线程,负责监听socket上的所有事件,当socket上有可读事件发生,即有新的连接请求到达,主线程就接受得到新的连接socket,然后往epoll内核事件表中注册该socket上的读写事件,若连接socket上有读写事件发生,主线程就将该连接加入请求队列(需要互斥锁),各个空闲的工作线程通过竞争获取睡眠...原创 2020-02-05 13:37:03 · 1049 阅读 · 0 评论 -
Linux线程模型
线程是程序中完成一个独立任务的完整执行序列,即一个可调度的实体。根据运行环境和调度者的身份,线程分为:内核线程:运行在内核空间,由内核调度用户线程:运行在用户空间,由线程库调度当进程的一个内核线程获得CPU使用权时,它就加载并运行一个用户线程(内核线程相当于用户线程运行的容器)。一个进程可拥有M个内核线程,N个用户线程,M <= N 。 M,N比值在一个系统所有进程中固定。/*C...原创 2020-02-03 10:58:00 · 339 阅读 · 0 评论 -
I/O模型之同步 异步 阻塞 非阻塞 /////并发模式的同步与异步
I/O模型之同步 异步 阻塞 非阻塞同步I/O分为阻塞 与 非阻塞异步I/O则不讨论阻塞与否(只需发出请求,不用读写,系统读写完毕通知回来处理数据总结:同步:执行一个操作之后,等待结果(同步阻塞是一直等待,同步非阻塞是每隔一段时间就回去询问数据是否读写完成),然后才继续执行后续的操作。如同步I/O模型实现的Reactor事件处理模式:工作线程需要自己从socket读取数据异...原创 2020-02-02 20:33:26 · 275 阅读 · 0 评论