使用socks4 socks5 http代理的客户端

这篇博客展示了如何使用C++编写客户端程序,通过socks4、socks5和http代理进行连接。文中包含详细的结构体定义和代码片段,如sock4req1、sock4ans1等,以及连接代理服务器并发送数据的示例。
摘要由CSDN通过智能技术生成

///定义的结构
struct sock4req1
{
    char VN;
    char CD;
    unsigned short Port;
    unsigned long IPAddr;
    char other[1];
};

struct sock4ans1
{
    char VN;
    char CD;
};

struct sock5req1
{
    char Ver;
    char nMethods;
    char Methods[255];
};

struct sock5ans1
{
    char Ver;
    char Method;
};

struct sock5req2
{
    char Ver;
    char Cmd;
    char Rsv;
    char Atyp;
    unsigned long IPAddr;
    unsigned short Port;
   
//    char other[1];
};

struct sock5ans2
{
    char Ver;
    char Rep;
    char Rsv;
    char Atyp;
    char other[1];
};

struct authreq
{
    char Ver;
    char Ulen;
    char Name[255];
    char PLen;
    char Pass[255];
};

struct authans
{
    char Ver;
    char Status;
};


///
///代码片段
void CTestDlg::OnSocks4()
{
    CString m_sError;
    ClientSock.Create();

    //Socks4代理服务器端口及地址
    //if( !ClientSock.Connect( "195.65.215.38",1080) )
    if( !ClientSock.Connect( "192.168.123.194",1080) )
    {
        m_sError = _T("不能连接到代理服务器!");
        ClientSock.Close();
        MessageBox(m_sError);
        return ;
    }

    char buff[100];
    memset(buff,0,100);
    struct sock4req1 *m_proxyreq;
    m_proxyreq = (struct sock4req1 *)buff;
    m_proxyreq->VN = 4;
    m_proxyreq->CD = 1;
    m_proxyreq->Port = ntohs(21);
    m_proxyreq->IPAddr = inet_addr("219.201.39.50");
    strcpy(m_proxyreq->other , "");
    ClientSock.Send(buff,9);
    struct sock4ans1 *m_proxyans;
    m_proxyans = (struct sock4ans1 *)buff;
    memset(buff,0,100)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值