network
coderchenjingui
失眠爱好者!
展开
-
I/O多路复用 select模型
情景分析:现在要编写一个echo服务器,就是接收每个客户端的链接,打印出客户端发送的一串文本。同时,再增加一项功能,可以处理标准输入。所以,服务器必须能够响应两个独立的I/O事件:1:来自客户端发起的socket连接2:标准输入也就是问题转化为:如何同时监听多个文件描述符?如何同时监听多个文件描述符?解决这种问题的办法之一就是:I/O多路复用。什么是I/O多路复用?简单原创 2013-05-22 23:50:48 · 1992 阅读 · 3 评论 -
I/O多路复用 select模型【续集】
上一篇文章介绍了基本的select模型,使用select模型编写了一个功能超级简单的echo服务器,可以同时监听一个套接口(用户接受客户端连接)和标准输入。对于每一个客户端连接都是输出客户端的内容后,立马终止与客户端的连接,这一片文章中,同时监听标准输入,监听的套接口与已连接的客户端。srv.c#include #include #include #include #include原创 2013-05-26 20:42:16 · 1142 阅读 · 0 评论 -
TCP三次握手连接及seq和ack号的正确理解
原文:http://blog.chinaunix.net/uid-25513153-id-187780.html三次握手Three-way Handshake一个虚拟连接的建立是通过三次握手来实现的1. (B) –> [SYN] –> (A)假如服务器A和客户机B通讯. 当A要和B通信时,B首先向A发一个SYN (Synchronize) 标记的包,告诉A请转载 2013-10-09 09:26:02 · 1529 阅读 · 0 评论 -
listen函数中backlog的含义
TCP中服务器端调用listen函数监听客户端的连接,listen函数的第二个参数backlog到底是什么意思呢?可以这样理解:服务器端TCP内核模块维护有2个队列,我们称之为A,B吧。客户端向服务器端connect的时候,挥发送带有SYN标志的包(第一次握手),服务器收到客户端发来的SYN时,向客户端发送SYN ACK确认(第二次握手),此时TCP内核模块把客户端连接加入到A原创 2013-10-10 22:09:24 · 4653 阅读 · 2 评论 -
Nagle算法与ACK延迟算法
昨天在小组的技术分享上,组长教我们怎样去调试一个服务器程序,收获很大。1:ping 典型的 80或者23 这些端口,看看机器还活着么2:telnet 看看我们的程序端口开着么(当然前提是TCP)3:tcpdump 抓包,可以看看网络包的接受和发送速度,对于文本协议的调试更方便了。啊。扯远了,主要还是在抓包的时候,应该四次挥手的TCP我们看到了3次,其中被动关闭方和FIN和对原创 2013-11-02 16:49:20 · 1964 阅读 · 0 评论