Muduo 网络编程示例之十:socks4a 代理服务器
陈硕 (giantchen_AT_gmail)
Blog.csdn.net/Solstice t.sina.com.cn/giantchen
这是《Muduo 网络编程示例》系列的第十篇文章,本系列暂告一段落。
Muduo 全系列文章列表: http://blog.csdn.net/Solstice/category/779646.aspx
本文介绍用 muduo 实现一个简单的 socks4a 代理服务器,代码见 http://code.google.com/p/muduo/source/browse/trunk/examples/socks4a/ 。
TCP 中继器
在实现 socks4a proxy 之前,我们先写一个功能更简单的网络程序—— TCP 中继器 (TCP relay),或者叫做穷人的 tcpdump (poor man's tcpdump)。
一般情况下,客户端程序直接连接服务端,如下图。有时候,我们想在 client 和 server 之间放一个中继器 (relay),把 client 与 server 之间的通信内容记录下来。这时用 tcpdump 是最方便省事的,但是 tcpdump 需要 root 权限,万一没有 root 密码呢?穷人有穷人的办法,自己写一个 relay,让 client 连接 relay,再让 relay 连接 server,如下图中的 T 型结构,relay 扮演了类似 proxy 的角色。

本文介绍了如何使用 Muduo 库实现一个简单的 socks4a 代理服务器,包括 TCP 中继器的实现细节和 Socks4a 协议的简单说明。通过示例代码展示了如何处理并发连接管理、连接断开以及速度不匹配等问题,并探讨了接下来的编程示例计划。
最低0.47元/天 解锁文章
1万+





