08 2017 档案
摘要:recv是socket编程中最常用的函数之一,在阻塞状态的recv有时候会返回不同的值,而对于错误值也有相应的错误码,分别对应不同的状态,下面是我针对常见的几种网络状态的简单总结。 首先阻塞接收的recv有时候会返回0,这仅在对端已经关闭TCP连接时才会发生。 而当拔掉设备网线的时候,recv并不会
阅读全文
摘要:cleint: server:
阅读全文
摘要:~/cpp$ ./connect 192.168.1.234 1234 kkkk block mode: ubuntu 14.04 : time used:21.0.001053s connect 超时时间是大约21秒! 注意:如果connect 127.x.x.x xxx kkkk 会立即返回因为
阅读全文
摘要:https://www.openssl.org/docs/fipsnotes.html https://wiki.openssl.org/index.php/FIPS_mode() openssl-fips是符合FIPS标准的Openssl。 联邦信息处理标准(Federal Information
阅读全文
摘要:epoll有两种触发的方式即LT(水平触发)和ET(边缘触发)两种,在前者,只要存在着事件就会不断的触发,直到处理完成,而后者只触发一次相同事件或者说只在从非触发到触发两个状态转换的时候儿才触发。 这会出现下面一种情况,如果是多线程在处理,一个SOCKET事件到来,数据开始解析,这时候这个SOCKE
阅读全文
摘要:from http://blog.csdn.net/nyist327/article/details/39586203 心跳包的发送,通常有两种技术方法1:应用层自己实现的心跳包 由应用程序自己发送心跳包来检测连接是否正常,大致的方法是:服务器在一个 Timer事件中定时 向客户端发送一个短小精悍的
阅读全文
摘要:splice( )函数 在两个文件描述符之间移动数据,同sendfile( )函数一样,也是零拷贝。 函数原型: #include <fcntl.h> ssize_t splice(int fdin, loff_t *offin, int fdout, loff_t *offout, size_t
阅读全文
摘要:from http://blog.csdn.net/hnlyyk/article/details/50856268 Linux系统使用man sendfile,查看sendfile原型如下: #include <sys/sendfile.h> ssize_t sendfile(int out_fd,
阅读全文
摘要:下面建立的套接字都是tcp套接字 1.进程创建监听套接字socket1,邦定一个指定端口,并接受了若干连接。那么进程创建另外一个套接口socket2,并试图邦定同一个端口时候,bind错误返回“Address already in use”(即使使用了SO_REUSEADDR).2.进程创建监听套接
阅读全文
摘要:from http://www.cnblogs.com/dawen/archive/2011/05/18/2050358.html 1、标准定义 两种I/O多路复用模式:Reactor和Proactor 一般地,I/O多路复用机制都依赖于一个事件多路分离器(Event Demultiplexer)。
阅读全文
摘要:协程是一种用户态的轻量级线程。 server的发展如下: IO密集型应用: 多进程->多线程->事件驱动->协程 CPU密集型应用:多进程-->多线程 如果说多进程对于多CPU,多线程对应多核CPU,那么事件驱动和协程则是在充分挖掘不断提高性能的单核CPU的潜力。 异步事件驱动模型中,把会导致阻塞的
阅读全文
摘要:connect accept: setsendbuffer: setrecvbuffer: daytime: testdup: writev: sendfile: splice: tee: select: epoll: oneshot:
阅读全文
摘要:服务器监听时,在每次处理一个客户端的连接时是需要一定时间的,这个时间非常的短(也许只有1ms 或者还不到),但这个时间还是存在的。而这个backlog 存在的意义就是:在这段时间里面除了第一个连接请求是正在进行处理以外,其他的连接请求都在请求队列中等待,而如果超过了队列的最大等待个数时,其他的请求将
阅读全文
摘要:https://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/ 您可能听说过,带有 yield 的函数在 Python 中被称之为 generator(生成器),何谓 generator ? 我们先抛开 generator,以
阅读全文
摘要:一、TCP报文格式 TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图:图1 TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。 (2)确认序号:Ack序号,占
阅读全文
摘要:from http://blog.csdn.net/whuslei/article/details/6667095 权威点的说明请参考:http://www.cs.tut.fi/~jkorpela/forms/methods.html 通俗的理解是: 一、GET的特点。 主要用于简单的获取页面信息,
阅读全文
摘要:from http://blog.csdn.net/feiyinzilgd/article/details/5894300 Linux网络编程中,socket的选项很多.其中几个比较重要的选项有:SO_LINGER(仅仅适用于TCP,SCTP), SO_REUSEADDR. SO_LINGER 在默
阅读全文
摘要:SO_LINGER选项用来设置延迟关闭的时间,等待套接字发送缓冲区中的数据发送完成。 没有设置该选项时,在调用close()后,在发送完FIN后会立即进行一些清理工作并返回。如果设置了SO_LINGER选项,并且等待时间为正值,则在清理之前会等待一段时间。 以调用close()主动关闭为例,在发送完
阅读全文
摘要:安装bitnami wordpress。 打开仪表盘:开始菜单--Bitnami Wordpress协议栈 Manager Tool -- Go to Appllication -- Access Wordpress。 网址是http://localhost:81/wordpress/ 仪表盘的网址
阅读全文
摘要:from https://stackoverflow.com/questions/5039608/poll-cant-detect-event-when-socket-is-closed-locally I'm working on a project that will port a TCP/IP
阅读全文
摘要:如:man 2 read, 就可以查看read函数的文档
阅读全文
摘要:from http://www.cnblogs.com/yuxingfirst/archive/2013/03/08/2950281.html 我们知道,linux下socket编程有常见的几个系统调用: 对于服务器来说, 有socket(), bind(),listen(), accept(),r
阅读全文
摘要:(1)select,poll实现需要自己不断轮询所有fd集合,直到设备就绪,期间可能要睡眠和唤醒多次交替。而epoll其实也需要调用epoll_wait不断轮询就绪链表,期间也可能多次睡眠和唤醒交替,但是它是设备就绪时,调用回调函数,把就绪fd放入就绪链表中,并唤醒在epoll_wait中进入睡眠的
阅读全文
摘要:3. 常用STL的使用 3.1. string (1)string类的实现(使用strlen、strcpy、strcat、strcmp等,注意判NULL)。 (2)C++字符串和C字符串的转换:data()以字符形式返回字符串内容,但不添加’\0\;c_str()返回一个以’\0’结尾的字符数组;c
阅读全文
摘要:stat, fstat and lstat是用来检查文件属性的。他们将文件属性信息通过a struct stat object 返回。 int stat (const char *filename, struct stat *buf) [Function]The stat function retu
阅读全文
摘要:from http://kb.cnblogs.com/page/574767/ 前言 由于工作需要,最近重新开始拾掇shell脚本。虽然绝大部分命令自己平时也经常使用,但是在写成脚本的时候总觉得写的很难看。而且当我在看其他人写的脚本的时候,总觉得难以阅读。毕竟shell脚本这个东西不算是正经的编程语
阅读全文
摘要:一、定义问题 外部排序指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和外部存储器之间进行多次数据交换,以达到排序整个文件的目的。外部排序最常用的算法是多路归并排序,即将原文件分解成多个能够一次性装入内存的部分,分别把每一部分调入内存完成排序。然后,对已经
阅读全文