- 博客(30)
- 收藏
- 关注
转载 常见多线程与并发服务器设计方案举例
常见多线程与并发服务器设计方案举例分类:muduo网络库2013-11-04 21:25930人阅读评论(0)收藏举报并发服务器多线程reactorthreadpool一、3点基础知识1、一个主机的端口号为所有进程所共享,但普通用户进程绑定bind不了一些特殊端口号如20、80等。 多个进程不能同时监听listen同一...
2014-07-10 21:38:00
162
转载 程序员的自我修养——操作系统篇
http://kb.cnblogs.com/page/211181/转载于:https://www.cnblogs.com/happy-pm/p/3833481.html
2014-07-09 14:03:00
166
转载 程序员的自我修养——计算机网络
http://kb.cnblogs.com/page/211867/转载于:https://www.cnblogs.com/happy-pm/p/3833476.html
2014-07-09 14:01:00
204
转载 转 Linux kernel 无锁队列
structkfifo{unsignedchar*buffer;/*thebufferholdingthedata*/unsignedintsize;/*thesizeoftheallocatedbuffer*/unsignedintin;/*dataisad...
2014-07-08 15:06:00
151
转载 将一个size向上取整到大于size的最小ALIGNMENT 的倍数,通常ALIGNMENT 为4的倍数
如#define ALIGNMENT 4size=(size+ALIGNMENT-1)&~(ALIGNMENT-1)如size=11 则新的size为12转载于:https://www.cnblogs.com/happy-pm/p/3831379.html
2014-07-08 13:57:00
253
转载 B-树和B+树的应用:数据搜索和数据库索引【转】
B-树1 .B-树定义B-树是一种平衡的多路查找树,它在文件系统中很有用。定义:一棵m 阶的B-树,或者为空树,或为满足下列特性的m 叉树:⑴树中每个结点至多有m 棵子树;⑵若根结点不是叶子结点,则至少有两棵子树;⑶除根结点之外的所有非终端结点至少有[m/2] 棵子树;⑷所有的非终端结点中包含以下信息数据:(n,A0,K1,A1,K2,…...
2014-07-08 13:29:00
104
转载 与网络编程相关的信号:
SIGHUP 通常用于重读配置SIGPIPE 往一个读端关闭的管道或者是套接字中写数据会发生这个信号SIGURGSIGALARMSIGCHLD转载于:https://www.cnblogs.com/happy-pm/p/3830307.html...
2014-07-07 19:28:00
77
转载 Reactor构架模式
对每一个构架模式的分析,我们都使用参考文献的分析风格,着重分析意图、上下文、问题、解决方案、结构和实现 6个方面的内容。而实现就是ACE源代码。1. 意图在事件驱动的应用中,将一个或多个客户的服务请求分离(demultiplex)和调度(dispatch)给应用程序。2. 上下文在事件驱动的应用中,同步地、有序地处理同时接收的多个服务请求。3. 问题在分布式系统尤...
2014-07-07 10:27:00
83
转载 EINTR错误
慢系统调用(slow system call):此术语适用于那些可能永远阻塞的系统调用。永远阻塞的系统调用是指调用有可能永远无法返回,多数网络支持函数都属于这一类。如:若没有客户连接到服务器上,那么服务器的accept调用就没有返回的保证。EINTR错误的产生:当阻塞于某个慢系统调用的一个进程捕获某个信号且相应信号处理函数返回时,该系统调用可能返回一个EINTR错误。例如:在socket...
2014-07-04 10:24:00
80
转载 通讯链路的检测方法
问题背景:TCP不能及时通知连接中断,如果使用keep-live机制默认时间是2小时11分钟15秒没有通讯才会发送探测消息,如依靠TCP超时机制可能要等待9分钟才能检测出网络中断,因此必须用户自己检测连接是否正常。连接中断可能的原因:1)一方主机崩溃 发不出FIN,对等方依靠重发检测链路中断,如果崩溃方在对等方准备撤销连接之前又重新启动了,若此时收到了消息则会回复RST消息给...
2014-07-03 15:04:00
1013
转载 关于ECONNRESET错误
在服务器崩溃后重启的时候,因为之前的连接都无效了,所以服务器端会发送一个RST响应,此时客户端产生ECONNRESET错误!这就需要你在客户端重新连接了!转载于:https://www.cnblogs.com/happy-pm/p/3822302.html...
2014-07-03 14:18:00
2009
转载 socket编程技巧(2)发送缓冲区和接收缓冲区的设置时机
因为TCP需要知道在连接建立期间的缓冲区大小,所以必须在服务端调用listen之前,客户端调用connect之前进行设置。客户端:setsockopt(s,SOL_SOCKET,SO_SNDBUF,(char*)&sndbufsz,sizeof(sndbufsz))connect.....服务端:setsockopt(s,SOL_SOCKET,SO_RE...
2014-07-03 12:53:00
574
转载 socket编程技巧(1)tcp接收接口(变长数据定长数据)的编写实例
TCP读取定长数据接口的编写:int readn(int fd,char*bp,size_t len){ int cnt; int rc; cnt=len; while(cnt>0) { rc=recv(fd,bp,cnt,0); if(rc<0)//read error ...
2014-07-03 11:51:00
778
转载 libnet介绍与分析
libnet介绍与分析当前,基于socket的网络编程已成为当今不可替代的编程方法,它将网络通讯当作文件描述符进行处理,把对这个“网络文件”(即socket套接字)的操作抽象成一种类似于文件操作的方式进行。从实现细节上,这种工作方式根据TCP/IP的网络通讯模型,封装了一系列的实现,使得我们只需要使用一个指定的参数,就可以实现在基于所需协议的数据的发送和接收。但是,如果...
2014-06-27 12:14:00
217
转载 TCP的6大标示符号
1.SYN:建立连接2.ACK:确认3.FIN:通讯终止4.RST:异常终止通讯连接5.URG:紧急数据6.PSH:发送方通过使用PUSH位来通知接收方将所有收到的数据立即提交给服务器进程,而不需要等待额外数据(将缓存填满)而让数据在缓存中停留!这里所说的数据包括与此PUSH包一起传输的数据以及之前就为该进程传输过来的数据(滞留在缓存中的数据)。转载于:https...
2014-06-27 09:57:00
383
转载 数据帧中常见协议类型
0x0800 IP0x0806 ARP0x8035 RARP更新中。。。转载于:https://www.cnblogs.com/happy-pm/p/3810619.html
2014-06-26 18:12:00
1301
转载 C语言中offsetof宏的应用
1)#define offsetof(s, m)(size_t)&(((s *)0)->m)2)#define OBJECT_HEAD_ADDRESS(ClassName,MemberName,Addre) \Addre - offsetof(ClassName, MemberName)转载于:https://www.cnblogs.com/ha...
2014-06-26 12:25:00
159
转载 ip欺骗(原始套接字系列九)
由于使用Raw Socket的时候,IP报头可完全由程序员自定义,所以我们可以任意地修改本地发送包的IP地址,使得接收方错误的认为IP报文是由欺骗地址发出的。 下面的程序演示了向某目标发送IP地址伪装的UDP报文的过程:void sendPesuoIpUDP(void){ WSADATA wsd; if (WSAStartup(MAKEWORD(2, 2), &...
2014-06-26 10:25:00
499
转载 ARP欺骗(原始套接字系列八)
ARP欺骗的原理可简单的解释如下:假设有三台主机A,B,C位于同一个交换式局域网中,监听者处于主机A,而主机B,C正在通信。现在A希望能嗅探到B->C的数据,于是A就可以伪装成C对B做ARP欺骗--向B发送伪造的ARP应答包,应答包中IP地址为C的IP地址而MAC地址为A的MAC地址。 这个应答包会刷新B的ARP缓存,让B认为A就是C,说详细点,就是让B认为C的IP地址映射到的MA...
2014-06-26 10:22:00
312
转载 包分析(原始套接字七)
紧接上节,DecodeIpPack()函数完成包的解析://IP包解析int DecodeIpPack(char *buf, int iBufSize){ IP_HEADER *pIpheader; int iProtocol, iTTL; char szProtocol[MAX_PROTO_TEXT_LEN]; char szSourceIP[MAX_ADDR_LEN]...
2014-06-26 10:17:00
110
转载 SNIFF(原始套接字系列六)
大家知道,以太网采用广播机制,所有与网络连接的工作站都可以看到网络上传递的数据。通过查看包含在帧中的目标地址,确定是否进行接收或放弃。如果证明数据确实是发给自己的,工作站将会接收数据并传递给高层协议进行处理。但是,如果让网卡置于混杂模式(Promiscuous mode),则网卡不会鉴别帧的MAC地址,而是一律接收。 上图给出...
2014-06-26 10:15:00
172
转载 路由器欺骗(原始套接字五)
Windows系统保持着一张已知的路由器列表,我们可以使用route PRINT命令显示路由表,下面是笔者的电脑运行route PRINT命令后的结果: 列表中到达某目的节点的第一项Gateway为默认路由器,如果默认路由器关闭,则位于列表第二项的路由器成为缺省路由器。缺省路由向发送者报告另一条到特定主机的更短路由,就是ICM...
2014-06-26 10:12:00
311
转载 ICMP拒绝服务攻击(原始套接字系列四)
拒绝服务攻击(DoS)企图通过使被攻击的计算机资源消耗殆尽从而不能再提供服务,拒绝服务攻击是最容易实施的攻击行为。中美黑客大战中的中国黑客一般对美进行的就是拒绝服务攻击,其技术手段大多不够高明。 ICMP实现拒绝服务攻击的途径有二:一者"单刀直入",一者"借刀杀人"。具体过程分析如下: ICMPFLOOD攻击 大量的 ICMP消息发送给目标系统,使得它不能够对合法的服务请求做...
2014-06-26 10:01:00
429
转载 ping的实现(原始套接字系列三)
使用Raw Socket实现Ping 仅仅采用ICMP.DLL并不能完全实现ICMP灵活多变的各类报文,只有使用Raw Socket才是ICMP的终极解决之道。 使用Raw Socket发送ICMP报文前,我们要完全依靠自己的代码组装报文://功能:初始化ICMP的报头, 给data部分填充数据, 计算校验和void init_ping_packet(ICMPHead...
2014-06-26 09:57:00
230
转载 原始套接字基础(原始套接字系列二)
在进入Raw Socket多种强大的应用之前,我们先讲解怎样建立一个Raw Socket及怎样用建立的Raw Socket发送和接收IP包。 建立Raw Socket 在Windows平台上,为了使用Raw Socket,需先初始化WINSOCK:// 启动 WinsockWSAData wsaData;if (WSAStartup(MAKEWORD(2, 1), &...
2014-06-26 09:46:00
176
转载 原始套接字简介(原始套接字系列一)
大多数程序员所接触到的套接字(Socket)为两类: (1)流式套接字(SOCK_STREAM):一种面向连接的Socket,针对于面向连接的TCP服务应用; (2)数据报式套接字(SOCK_DGRAM):一种无连接的Socket,对应于无连接的UDP服务应用。 从用户的角度来看,SOCK_STREAM、SOCK_DGRAM这两类套接字似乎的确涵盖了TCP/IP应用的全部,因为基于...
2014-06-26 09:21:00
388
转载 MMS服务学习
1.分类:1)带确认服务如后台的遥控操作2)不带确认的如测控装置定时的电流、电压遥测量的上送2.MMS基本思想屏蔽具体装置技术细节实现异构装置之间的互联互通 ,各装置必须按照MMS的规范完成VMD与实际装置之间的映射3.MMS对象和服务1)VMD模型包含以下内容:i)对象、属性(名字、值、类型)ii)服务Read Write转...
2014-06-25 12:14:00
246
转载 转 Qt 翻译
相信大家对软件的国际化问题,应该很清楚了,这里我主要谈论的是QT应用程序的国际化的问题,仅供大家参考。QT应用程序的国际化问题,应该总的来说还是比较容易的,如果你源码中没有使用汉字,直接使用英文,这个问题就不大,下面我讲的是通过在源码中直接使用中文(就是本地化了的),然后把中文翻译成别的文字而言的(例如加密文字),大致分这么几个步骤,基本与对英文进行国际化的步骤差不多(这里是针...
2014-06-21 16:16:00
102
转载 为应用程序设置一个图标 (窗口左上角 程序图标)
1.准备相应的图标文件 这里举例pr.ico2.创建img文件夹保存pr.ico文件3.创建rc文件,并输入以下内容 IDI_ICON1 ICON DISCARDABLE "/img/pr.ico"4.在项目文件.pro中添加如下内容 RC_FILE = pr.rc5.make6.你会发现应用程序的图标变成你指定的图标了。转...
2014-06-21 09:40:00
1030
转载 正则表达式
1) []表示或的意思如:[a-z] [0-9]2) [^] ^在[]里面表示排除如[^a-z0-9] 排除a-z和0-93) \d 为数字和[0-9]同一个意思4) {m,n} 表示出现几次如\d{8}出现8次5) + ={1,} 表示至少出现一次6)开头和结尾^.....$7)?后缀表示可有可无8)\w :表示英文数字下划线9) .通...
2014-06-20 17:06:00
102
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人