一个简单的Proxy代理服务器的源代码!

原创 2001年04月30日 13:31:00

 

#include <windows.h>
#include <stdio.h>

#define PROXY_IP "xxx.xxx.xxx.xxx"
#define PROXY_PORT 1080

#define DEST_IP "xxx.xxx.xxx.xxx"
#define DEST_PORT 8888

#define LOCAL_IP "xxx.xxx.xxx.xxx"
#define LOCAL_PORT 6666

int main()
{   
    int fd, fd_udp;   
    struct sockaddr_in name;
    WSADATA wsaData;   
    char buf[100];   
    int len;
    int i;
    if(WSAStartup(MAKEWORD( 2, 2 ), &wsaData ))       
        return 1;
    if((fd_udp = socket(AF_INET, SOCK_DGRAM, 0)) == -1)       
      return 1;   
    if((fd = socket(AF_INET, SOCK_STREAM, 0)) == -1)       
      return 1;   
    memset(&name, 0, sizeof(name));   
    name.sin_family = AF_INET;   
    name.sin_addr.s_addr = inet_addr(PROXY_IP);   
    name.sin_port = htons(PROXY_PORT);   
    if(connect(fd, (struct sockaddr*)&name, sizeof(name)) != 0)       
        return 1;   
    buf[0] = 5;   
    buf[1] = 1;   
    buf[2] = 0;   
    send(fd, buf, 3, 0);   
    recv(fd, buf, 2, 0);   
    if(buf[0] != 5 || buf[1] != 0)       
        return 1;
    buf[0] = 5; /* protocol version */ 
    buf[1] = 3; /* command UDP associate */   
    buf[2] = 0; /* reserved */   
    buf[3] = 1; /* address type IP v4 */   
    len = sizeof(name);
    memset(&name, 0, sizeof(name));
    name.sin_family = AF_INET;   
    name.sin_addr.s_addr = inet_addr(LOCAL_IP);   
    name.sin_port = htons(LOCAL_PORT);
    bind(fd_udp,(struct sockaddr *)&name,len);
    *(unsigned int*)&buf[4] = inet_addr(LOCAL_IP);//name.sin_addr.s_addr;   
    *(unsigned short*)&buf[8] = htons(LOCAL_PORT);   
    send(fd, buf, 10, 0);   
    recv(fd, buf, 10, 0);   
    if(buf[0] != 5)       
      return 11;   
    memset(&name, 0, sizeof(name));   
    name.sin_family = AF_INET;   
    name.sin_addr.s_addr = *(int*)&buf[4];   
    name.sin_port = (*(short*)&buf[8]);   
    connect(fd_udp, (struct sockaddr *)&name, sizeof(name));   
    for(i = 0; i <100; i++)
    {
        buf[0] = 0; /* reserved */       
        buf[1] = 0; /* reserved */
        buf[2] = 0; /* standalone packet */       
        buf[3] = 1; /* address type IP v4 */       
        *(unsigned long*)&buf[4] = inet_addr(DEST_IP);       
        *(unsigned short*)&buf[8] = htons(DEST_PORT);       
        *(unsigned int*)&buf[10] = i;       
        send(fd_udp, buf, 14, 0);       
        recv(fd_udp, buf, 14, 0);       
        printf("udp received: %d/n", *(int*)&buf[10]);   
    }   
    closesocket(fd_udp);   
    closesocket(fd);   
    WSACleanup();   
    return 0;
}

HTTP代理源代码

#pragma hdrstop //--------------------------------------------------------------------------- #inclu...
  • iiprogram
  • iiprogram
  • 2007年10月10日 17:03
  • 2731

linux 代理服务器源码

代码分为转发服务器和代理服务器,先说转发服务器转发服务器其实也可以说成是重定向服务器,比如转发服务器监听80端口,如果有浏览器用户访问服务器IP(浏览器默认请求80端口),转发服务器接收到浏览器用户的...
  • lanndmentt
  • lanndmentt
  • 2013年11月14日 18:00
  • 863

proxy简单的代理服务器

proxyproxy,既是代理服务器,在网络环境中,两台机器无法直接相连,如google,facebook等,在国内环境中无法直接访问,为了使用google和facebook,则需要FQ,跨过长城防火...
  • hzwy23
  • hzwy23
  • 2016年12月11日 19:08
  • 2549

自己写代理服务器

代理服务器是一个非常容易制作的软件,在IBM上看到一个牛人写的JAVA代理服务器,代码虽简短,但是功能齐全,非常稳定。分享一下: http://www.ibm.com/developerworks/...
  • AJAXHu
  • AJAXHu
  • 2013年10月05日 19:25
  • 1840

自己写非阻塞代理服务器 proxy 之C语言版

代理服务器的工作流程就是:把client的访问请求发送到proxy,proxy再把这些数据转到server,然后server对这个请求产生响应数据,发送到proxy,proxy再把这些数据转到clie...
  • littlethunder
  • littlethunder
  • 2013年05月22日 13:59
  • 13755

Linux下常用程序的代理服务器(proxy)配置

Linux下有很多程序都只有命令行接口,对于这类程序,它们通过代理服务器(proxy)访问网络的方式也不尽相同。在本文中Easwy总结了一些常用Linux程序配置代理服务器的方法。 [ 通用代理...
  • mergerly
  • mergerly
  • 2014年12月16日 18:05
  • 9751

代理服务器工作原理

 (1) 代理服务原理 代理服务器有很多种,大体来说有http,ftp,socks代理三种,其中又分透明代理和不透明代理。其中透明代理一般是网关,是硬件。所以这里讨论不透明代理。 当机器通过代理服务器...
  • overmaker
  • overmaker
  • 2008年02月28日 12:57
  • 10251

计算机网络--http代理服务器的设计与实现

一、Socket编程的客户端和服务端的主要步骤: Java Socket编程:对于http传输协议 客户端: 1、创建新的socket,绑定服务器host和端口号 2、Socket创建成功后获得相应的...
  • u011955072
  • u011955072
  • 2015年06月05日 00:10
  • 5055

网络地址转换(NAT)与代理服务器(Proxy Server)

NAT简述在计算机网络中,网络地址转换(Network Address Translation,NAT)技术,就是把 IP 数据报通过路由器或者防火墙时,重写来源 IP 地址或目的 IP 地址的技术。...
  • a1414345
  • a1414345
  • 2017年05月19日 22:22
  • 1210

基于Proxy代理服务器的长连接方法

基于Proxy代理服务器的长连接方法  摘要 本发明公开了一种基于Proxy代理服务器的长连接方法,在智能终端与服务器之间介入Proxy代理服务器,其长连接方法包括:连接的建立、连接的...
  • yidaizongshi579
  • yidaizongshi579
  • 2016年01月16日 12:39
  • 1090
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一个简单的Proxy代理服务器的源代码!
举报原因:
原因补充:

(最多只允许输入30个字)