网络通信
zkf11387
这个作者很懒,什么都没留下…
展开
-
linux下socket通信程序例子
[代码] c代码 server部分 view source print? 001 server.c 002 003 ====================================================================转载 2012-06-12 17:47:00 · 4617 阅读 · 0 评论 -
Linux并发服务器代码实现
我们知道linux的UDP是面向无连接的,但是TCP是面向连接,所以UDP服务器可以并发处理,但是TCP由于是面向连接,一次通信只能和一个客户端相连,所以要想实现并发处理,可以使用fork()创建子进程来实现,编程模式如下: 服务端: #include #include #include #include #include #include #incl转载 2012-06-22 09:40:05 · 1031 阅读 · 0 评论 -
TCP三次握手
在server和client调用socket生成套接字后,server调用listen监听某个端口后,调用accept来等待client的连接,accept本身是阻塞的,直到收到client的请求后,accept才返回 client调用connect函数项server所在主机发起连接请求,连接的报文中除了包含server的iP和端口外,还包含了client端初始化的序号SYN a 和MSS=14转载 2012-06-22 10:35:46 · 503 阅读 · 0 评论 -
Linux下多路复用IO接口 epoll select poll 的区别
我们先来介绍下nginx nginx : 支持高并发连接.官方测试的是5w并发连接但在实际生产中可制成2-4w并发连接数,得益于nginx使用最新的epoll(linux 2.6内核)和kqueue(freebsd)网络I/O模型.而apache使用的则是传统的select模型,其比较稳定的prefork模式为多进程模式,需要经常派生子进程,所消耗的CPU等服务器资源要比nginx高的多.转载 2012-06-24 10:30:37 · 1126 阅读 · 0 评论 -
epoll为什么比select这么快?
epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,在开始讨论这个问题之前,先来解释一下为什么需要多路复用IO. 以一个生活中的例子来解释. 假设你在大学中读书,要等待一个朋友来访,而这个朋友只知道你在A号楼,但是不知道你具体住在哪里,于是你们约好了在A号楼门口见面. 如果你使用的阻塞IO模型来处理这个问题,那么你就只能一直守候在A号转载 2012-06-24 10:29:12 · 1640 阅读 · 0 评论