摘要: UNIX域协议 UNIX域套接字与TCP相比, 在同一台主机上, UNIX域套接字更有效率, 几乎是TCP的两倍(由于UNIX域套接字不需要经过网络协议栈,不需要打包/拆包,计算校验和,维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程, 而且UNIX域协议机制本质上就是可靠的通讯,... 阅读全文
posted @ 2015-03-14 20:56 挨踢人啊 阅读(404) 评论(0) 推荐(0) 编辑
摘要: UDP特点 无连接,面向数据报(基于消息,不会粘包)的数据传输服务; 不可靠(可能会丢包, 乱序, 重复), 但因此一般情况下UDP更加高效;UDP客户/服务器模型 UDP-API使用#include #include ssize_t recvfrom(int sockfd, void ... 阅读全文
posted @ 2015-03-14 20:34 挨踢人啊 阅读(269) 评论(0) 推荐(0) 编辑
摘要: select的限制用select实现的并发服务器,能达到的并发数一般受两方面限制:1)一个进程能打开的最大文件描述符限制。这可以通过调整内核参数。可以通过ulimit -n(number)来调整或者使用setrlimit函数设置,但一个系统所能打开的最大数也是有限的,跟内存大小有关,可以通过cat... 阅读全文
posted @ 2015-03-14 20:21 挨踢人啊 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 引:超时设置3种方案1. alarm超时设置方法//代码实现: 这种方式较少用void sigHandlerForSigAlrm(int signo){ return ;}signal(SIGALRM, sigHandlerForSigAlrm);alarm(5);int ret = rea... 阅读全文
posted @ 2015-03-14 19:53 挨踢人啊 阅读(383) 评论(0) 推荐(0) 编辑
摘要: TCP粘包问题由于TCP协议是基于字节流且无边界的传输协议, 因此很有可能产生粘包问题, 问题描述如下 对于Host A 发送的M1与M2两个各10K的数据块, Host B 接收数据的方式不确定, 有以下方式接收: 先接收M1, 再接收M2(正确方式) 先接收M2, 再接收M1(错误... 阅读全文
posted @ 2015-03-14 15:47 挨踢人啊 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 五种I/O模型介绍(1)阻塞I/O[默认] 当上层应用App调用recv系统调用时,如果对等方没有发送数据(Linux内核缓冲区中没有数据),上层应用Application1将阻塞;当对等方发送了数据,Linux内核recv端缓冲区数据到达,内核会把数据copy给用户空间。然后上层应用App解... 阅读全文
posted @ 2015-03-14 15:32 挨踢人啊 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 僵尸进程处理1)通过忽略SIGCHLD信号,避免僵尸进程 在server端代码中添加 signal(SIGCHLD, SIG_IGN); 2)通过wait/waitpid方法,解决僵尸进程signal(SIGCHLD,onSignalCatch);void onSignalCatch(... 阅读全文
posted @ 2015-03-14 15:22 挨踢人啊 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 1.Socket地址复用int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);int setsockopt(int sockfd, int level, i... 阅读全文
posted @ 2015-03-14 15:07 挨踢人啊 阅读(268) 评论(0) 推荐(0) 编辑
摘要: socket函数#include #include int socket(int domain, int type, int protocol);创建一个套接字用于通信参数: domain:指定通信协议族(protocol family),常用取值AF_INET(IPv4) type:指定... 阅读全文
posted @ 2015-03-14 12:24 挨踢人啊 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 什么是Socket? Socket可以看成是用户进程与内核网络协议栈的接口(编程接口, 如下图所示), 其不仅可以用于本机进程间通信,可以用于网络上不同主机的进程间通信, 甚至还可以用于异构系统之间的通信。 IPv4套接口地址结构 IPv4套接口地址结构通常也称为“网际套接字地址结构”... 阅读全文
posted @ 2015-03-14 12:10 挨踢人啊 阅读(162) 评论(0) 推荐(0) 编辑
摘要: ISO的OSI OSI(open system interconnection)开放系统互联模型是由ISO国际标准化组织定义的网络分层模型,共七层, 从下往上为:OSI七层参考模型物理层(Physical Layer)物理层定义了所有电子及物理设备的规范,为上层的传输提供了一个物理介质,本层... 阅读全文
posted @ 2015-03-14 11:50 挨踢人啊 阅读(357) 评论(0) 推荐(0) 编辑