代理服务器的工作流程就是:把client的访问请求发送到proxy,proxy再把这些数据转到server,然后server对这个请求产生响应数据,发送到proxy,proxy再把这些数据转到client。经过了proxy,那就可以做好多事情了哈,可以自己设置个墙,自己设置访问优先级,统计流量啥的就不说了,反正可以做各种好玩的。因为刚开始做,做个简单的,以后可以慢慢加功能。
proxy的Linux C 语言版如下所示:
#include<stdio.h>
#include<poll.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<arpa/inet.h>
#include<unistd.h>
#include<string.h>
#define ADDR "127.0.0.1"
#define PORT 8080
#define PORT_APACHE 8088
#define SIZE 1024
int main()
{
int ret=0;
int maxsocket;
int apa,ser,cli;
char buf[SIZE]={0};
char apabuf[SIZE]={0};
struct pollfd fds[5]={0};
struct sockaddr_in apaaddr,seraddr,cliaddr;
socklen_t clilen=sizeof(cliaddr);
apaaddr.sin_family=AF_INET;
apaaddr.sin_addr.s_addr=inet_addr(ADDR);
apaaddr.sin_port=htons(PORT_APACHE);
seraddr.sin_family=AF_INET;
seraddr.sin_addr.s_addr=inet_addr(ADDR);
seraddr.sin

本文介绍了如何使用C语言在Linux环境下编写一个简单的非阻塞代理服务器。通过代理服务器,可以实现如设置墙、调整访问优先级等功能。文中展示了代码示例,并附有运行效果的截图。
最低0.47元/天 解锁文章
1062

被折叠的 条评论
为什么被折叠?



