
Linux网络编程
飛雪一刀
这个作者很懒,什么都没留下…
展开
-
Linux内核信号处理机制介绍
点击打开链接本文简单介绍下Linux信号处理机制,为介绍二进制翻译下信号处理机制做一个铺垫。本文主要参考书目《Linux内核源代码情景分析》《独辟蹊径品内核:Linux内核源代码导读》首先,先说一下什么是信号。信号本质上是在软件层次上对中断机制的一种模拟,其主要有以下几种来源:程序错误:除零,非法内存访问…外部信号:终端Ctrl-C产生SGINT信号,定时器到期转载 2012-06-09 23:41:03 · 947 阅读 · 0 评论 -
Reactor与Proactor的概念
转自:http://www.cnblogs.com/dawen/archive/2011/05/18/2050358.html1、标准定义两种I/O多路复用模式:Reactor和Proactor一般地,I/O多路复用机制都依赖于一个事件多路分离器(Event Demultiplexer)。分离器对象可将来自事件源的I/O事件分离出来,并分发到对应的read/write事件处转载 2015-01-10 10:30:26 · 516 阅读 · 0 评论 -
单机TCP最大连接数
转自:http://www.cnblogs.com/mydomain/archive/2013/05/27/3100835.html单机最大tcp连接数网络编程 在tcp应用中,server事先在某个固定端口监听,client主动发起连接,经过三路握手后建立tcp连接。那么对单机,其最大并发tcp连接数是多少?如何标识一个TCP连接在确定最大连接数之前,先来看看系统如何标识一个转载 2014-11-13 22:26:03 · 810 阅读 · 0 评论 -
进程间传递socket的做法
转自:http://blog.sina.com.cn/s/blog_4ed630e801000be4.html我们知道父进程在子进程被fork出来之前打开的文件描述符是能被子进程继承下来的,但是一旦子进程已经创建后,父进程打开的文件描述符要怎样才能传递给子进程呢?Unix提供相应的技术来满足这一需求,这就是同一台主机上进程间的文件描述符传递,很美妙而且强大的技术。想象一下我们试图实现一转载 2014-11-13 10:00:46 · 2047 阅读 · 0 评论 -
Linux下获得本机IP
#include #include #include // strerror(errno)#include #include // socket 函数#include // 网络字节交换函数#include // struct ifreq//#include #include // ioctl 函数#include原创 2014-01-06 17:40:59 · 673 阅读 · 0 评论 -
linux非阻塞的socket EAGAIN的错误处理
转自:http://blog.youkuaiyun.com/tianmo2010/article/details/8691644在Linux中使用非阻塞的socket的情形下。(一)发送时 当客户通过Socket提供的send函数发送大的数据包时,就可能返回一个EAGAIN的错误。该错误产生的原因是由于send 函数中的size变量大小超过了tcp_sendspace的值。tcp_sen转载 2013-06-20 11:57:07 · 1059 阅读 · 0 评论 -
服务器模型按场景的选择
转自:http://www.zhihu.com/question/20114168多线程模型适用于处理短连接,且连接的打开关闭非常频繁的情形,但不适合处理长连接。多线程模型默认情况下,(在Linux)每个线程会开8M的栈空间,再TCP长连接的情况下,2000/分钟的请求,几乎可以假定有上万甚至十几万的并发连接,假定有10000个连接,开这么多个线程需要10000*8M=80G的内存空间!即使调整每转载 2013-06-20 15:33:11 · 610 阅读 · 0 评论 -
epoll为什么这么快,epoll的实现原理
这是我看过的最通俗易懂的关于epoll的讲解:一、为什么epoll这么快:epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,在开始讨论这个问题之前,先来解释一下为什么需要多路复用IO.以一个生活中的例子来解释.假设你在大学中读书,要等待一个朋友来访,而这个朋友只知道你在A号楼,但是不知道你具体住在哪里,于是你们约好转载 2013-06-19 12:06:33 · 9914 阅读 · 0 评论 -
TCP长连接与短连接
http://seya.iteye.com/blog/1116988http长连接与短连接 一、长连接与短连接: 长连接:client方与server方先建立连接,连接建立后不断开,然后再进行报文发送和接收。 这种方式下由于通讯连接一直存在。此种方式常用于P2P通信。 短连接:Client方与server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接转载 2012-09-01 11:15:21 · 775 阅读 · 0 评论 -
TCP控制字段标志:URG、ACK、PSH、RST、SYN、FIN
在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG.其中,对于我们日常的分析有用的就是前面的五个字段。它们的含义是:URG:Urget pointer is valid (紧急指针字段值有效)SYN: 表示建立连接FIN: 表示关闭连接ACK: 表示响应PSH: 表示有 DATA数据传输RST: 表示转载 2012-06-10 15:49:01 · 14339 阅读 · 1 评论 -
MSL、TTL和RTT简介
MSL是Maximum Segment Lifetime英文的缩写,中文可以译为“报文最大生存时间”,他是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃。因为tcp报文(segment)是ip数据报(datagram)的数据部分,具体称谓请参见《数据在网络各层中的称呼》一文,而ip头中有一个TTL域,TTL是time to live的缩写,中文可以译为“生存时间”,这个生存时间是由源转载 2012-06-10 14:47:09 · 2799 阅读 · 0 评论 -
关于socket阻塞与非阻塞情况下的recv、send、read、write返回值
转自:http://www.cnblogs.com/lijunjie/articles/1759688.html1、阻塞模式与非阻塞模式下recv的返回值各代表什么意思?有没有区别?(就我目前了解阻塞与非阻塞recv返回值没有区分,都是 0接收到数据大小,特别:返回值 2、阻塞模式与非阻塞模式下write的返回值各代表什么意思?有没有区别?(就我目前了解阻塞与非阻塞write返回值没有转载 2016-02-13 11:11:47 · 630 阅读 · 0 评论