随笔分类 - Linux网络编程
摘要:shmget函数用于创建或打开一个共享内存区对象,shmget成功调用会返回一个共享内存区的标识符,供其它的共享内存区操作函数使用。 key:用于创建共享内存区的键值,这个在前面其他System IPC创建的时候已经讨论过了,System IPC都有一个key,作为IPC的外部标识符,创建成功后返回
阅读全文
摘要:如果采用 void sig_chld(int signo) { pid_t pid; int stat; while((pid = waitpid(-1, &stat, WNOHANG)) > 0){ printf("child %d terminated\n", pid); } return; }
阅读全文
摘要:对于多线程,如果希望让其他线程不执行,只有调试线程执行,使用 set scheduler-locking [on|off|step]
阅读全文
摘要:协程诞生解决的是低速IO和高速的CPU的协调问题,解决这类问题主要有三个有效途径: 异步非阻塞网络编程(libevent、libev、redis、Nginx、memcached这类) 协程(golang、gevent) “轻量级线程”,相当于是在语言层面做抽象(Erlang) 对比之下协程的编程难度
阅读全文
摘要:参考 https://zhuanlan.zhihu.com/p/20768200?refer=auxten 而成本很多时候的体现就是对计算资源的消耗,其中最重要的一个资源就是CPU资源。 Sendfile(2)在这个时代背景下于2003年前后被加入Linux Kernel,陆续在各大UNIX、Lin
阅读全文
摘要:第七篇 CAP https://zhuanlan.zhihu.com/p/20399316?refer=auxten CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer’s theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点: 一致性 (Consisten
阅读全文
摘要:http://www.cnblogs.com/charlesblc/p/6341265.html 其中的一篇。 参考 https://zhuanlan.zhihu.com/p/20336461?refer=auxten 网络编程(四):互联网中TCP Socket服务器的实现过程需要考虑哪些安全问
阅读全文
摘要:参考: http://blog.csdn.net/w616589292/article/details/46475555 libuv 和 libev ,两个名字相当相近的 I/O Library,最近有幸用两个 Library 都写了一些东西,下面就来说一说我本人对两者共同与不同点的主观表述。 高性
阅读全文
摘要:接上一篇 http://www.cnblogs.com/charlesblc/p/6241926.html 来源: https://zhuanlan.zhihu.com/p/20204159 (一):演进——从Apache到Nginx 网上关于Apache和Nginx性能比较的文章非常多,基本上有如
阅读全文
摘要:这篇文章写的不错: http://www.cnblogs.com/CheeseZH/p/5169498.html 关注Linux的系统状态,主要从两个角度出发,一个角度是系统正在运行什么服务(ps命令);另外一个就是有什么连接或服务可用(netstat命令)。 netstat还可以显示ps无法显示的
阅读全文
摘要:之前有一篇关于共享内存的System V和Posix的对比: http://www.cnblogs.com/charlesblc/p/6261469.html POSIX(Portable Operating System Interface)可移植操作系统接口,这样的简写完全是为了和UNIX读起来
阅读全文
摘要:写的不错。 http://www.cnblogs.com/CheeseZH/p/5264465.html IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。 一、管道 1、特
阅读全文
摘要:之前有一篇文章,说了RPC的内容: http://www.cnblogs.com/charlesblc/p/6214391.html 如果有一种方式能让我们像调用本地服务一样调用远程服务,而让调用者对网络通信这些细节透明,那么将大大提高生产力,比如服务消费方在执行helloWorldService.
阅读全文
摘要:参考 linux中fcntl()、lockf、flock的区别 这三个函数的作用都是给文件加锁,那它们有什么区别呢? 首先flock和fcntl是系统调用,而lockf是库函数。lockf实际上是fcntl的封装,所以lockf和fcntl的底层实现是一样的,对文件加锁的效果也是一样的。后面分析不同
阅读全文
摘要:先看了这篇: http://www.cppblog.com/thisisbin/archive/2010/02/07/107444.html 里面说了会维护两个队列,established 和 syn_rcvd的。而back_log指定的长度是两个队列之和(乘以一个系数) 当客户端的第一个SYN到达
阅读全文