用epoll演示tcp代理

示例程序下载地址

epoll原理请参考:IO多路复用之epoll总结
本程序只是代理程序的原型展示,因此技术细节请不要深究,例如TCP粘包的处理,未使用多线程处理大并发,只处理了文本数据,未处理缓冲区溢出等问题。

  • * 如下图,客户端可以和服务端直连,也可以通过代理连接*
  • 这里写图片描述
  • 文件说明
  • c_epoll.cpp——客户端,请注意连接服务器的IP(IPADDRESS)、端口(SERV_PORT)的宏定义
  • s_epoll.cpp——服务端,请注意服务器的IP(IPADDRESS)、端口(PORT)的宏定义
  • tnsProxy.cpp——代理,请注意代理监听的IP(PROXY_IP)、端口(PROXY_PORT),及服务器IP(DB_IP)、端口(DB_PORT),其实这里模拟的是数据的代理,所以用了DB前缀。
  • vc_client——用VS2010阻塞模型开发的客户端,可以和服务端、代理,结合运行。运行时的参数1为服务端P,参数2服务端端口。请参见vc_client\rd_10.1.8.196_proxy_9787.bat等脚本。

注意设置TCP_NODELAY为1

void setTcpNodelay(int fd) {
int enable = 1;
setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (void*)&enable, sizeof(enable));
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值