陈硕 (giantchen_AT_gmail)
Blog.csdn.net/Solstice
这是《Muduo 网络编程示例》系列的第四篇文章。
Muduo 全系列文章列表: http://blog.csdn.net/Solstice/category/779646.aspx
Python Twisted 是一款非常好的网络库,它也采用 Reactor 作为网络编程的基本模型,所以从使用上与 muduo 颇有相似之处。(当然,muduo 没有 deferreds)Finger 是 twisted 文档的一个经典例子,本文展示如何用 muduo 来实现最简单的 finger 服务端。限于篇幅,只实现 finger01~07。代码位于 examples/twisted/finger 。
1 拒绝连接
什么都不做,程序空等。finger01.cc
1: #include
2:
3: using namespace muduo;
4: using namespace muduo::net;
5:
6: int main()
7: {
8: EventLoop loop;
9: loop.loop();
10: }
2 接受新连接
在 1079 端口侦听新连接,接受连接之后什么都不做,程序空等。muduo 会自动丢弃收到的数据。finger02.cc
1: #include
2: #include
3:
4: using namespace muduo;
5: using namespace muduo::net;
6:
7: int main()
8: {
9: EventLoop loop;
10: TcpServer server(&loop, InetAddress(1079), "Finger");
11: server.start();
12: loop.loop();
13: }
3 主动断开连接
接受新连接之后主动断开。finger03.cc
以下省略头文件和 namespace。
1: void onConnection(const TcpConnectionPtr& conn)
2: {