如何在win32 API中使用代理连接到远程服务器?

时间:2011-05-18 02:19:29

标签: c winapi proxy

// try to connect to server
if ((Status = connect(sock_server, &serverSockAddr, sizeof(serverSockAddr))) < 0)
{
    SockSend(sock_client, "404 Host Not Found\n\n", 20);
    SockClose(sock_client);
    return 1;
}

// send client's req to server
SockSend(sock_server, buf, strlen(buf));

以上是connect到远程服务器没有代理的代码,如何使用代理?

3 个答案:

答案 0 :(得分:0)

InternetOpen函数允许指定代理。接下来可以调用InternetConnect函数。 InternetConnect为您提供了一小部分要连接的服务器端口。我没有看到任何方法来访问服务器上的任意端口号。

答案 1 :(得分:0)

使用Winsock API进行此类事情几乎不是正确的选择。使用WinHTTP或WinINET是一种更简单的方法,可以避免编写数千行代码。

答案 2 :(得分:0)

我假设HTTP代理。

您连接到代理,然后发出GET或您想要执行的任何HTTP。您需要确保GET具有域+资源,如

GET stackoverflow.com/ HTTP/1.0
Host: stackoverflow.com

HTTP 1.0和1.1的RFC文档将详细介绍。对于其他类型的代理,您需要提供一些反馈。