疯了!要怎么写才能连接上Socks4代理服务器?
事先参考了以下的参考资料:
http://blog.csdn.net/wangzhanlili/archive/2005/09/08/474847.aspx
http://www.cnpaf.net/forum/viewthread.php?tid=19043
然后我找了一个socks4代理服务器:121.22.20.202:1080 经过telnet验证,证明是可以连接的。
然后我写了一段代码,本意是通过这个代理连接上百度网站.
int Test3()
{
WSADATA wsd;
SOCKET sHost; // 代理服务器套接字
SOCKADDR_IN servAddr; // 代理服务器地址
char buf[BUF_SIZE]; // 接收数据缓冲区
int retVal; // 返回值
if (WSAStartup(MAKEWORD(2, 2), &wsd) != 0)
{
printf("WSAStatup failed!\n");
return 1;
}
// 创建套接字
sHost = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (INVALID_SOCKET == sHost)
{
printf("socket failed!\n");
WSACleanup();
return -1;
}
// 设置服务器地址
servAddr.sin_family = AF_INET;
servAddr.sin_addr.s_addr = inet_addr("121.22.20.202"); //socks4代理服务器的IP
servAddr.sin_port = htons(1080); // Socks4代理服务器的端口号
int nServAddlen = sizeof(servAddr);
// 连接代理服务器
retVal = connect(sHost, (LPSOCKADDR)&servAddr, sizeof(servAddr));
if (SOCKET_ERROR == retVal)
{
printf("Connect failed!\n");
closesocket(sHost);
WSACleanup();
return -1;
}
char buff[100] = {0};
memset(buff,0,100);
struct sock4req1 *m_proxyreq;
m_proxyreq = (struct sock4req1 *)buff;
m_proxyreq->VN = 4;
m_proxyreq->CD = 1;
m_proxyreq->Port = htons(80); // 80端口
m_proxyreq->IPAddr = inet_addr("119.75.213.61"); // baidu的IP
strcpy(m_proxyreq->other , "");
retVal = ::send(sHost, buff, 9, 0);
struct sock4ans1 *m_proxyans;
m_proxyans = (struct sock4ans1 *)buff;
memset(buff,0,100);
retVal = ::recv(sHost, buff, 100, 0);
if(m_proxyans->VN != 0 || m_proxyans->CD != 90)
{
char * m_sError = "通过代理连接主站不成功!";
closesocket(sHost);
MessageBox(NULL, m_sError, "test", MB_OK);
return -1 ;
}
return 0;
}
结果是connect代理服务器没有出错,但发送连接请求,却没有得到回应,始终是"通过代理连接主站不成功!"
不知是哪个环节出了错,请各位兄弟帮忙指点!
相关推荐
socks-server:SOCKS4SOCKS5代理服务器
袜子服务器 (套接字安全)代理服务器。 支持SOCKS4 支持SOCKS5 身份验证尚未实现 执照 版权所有2015 Christopher Brown。 。
http socks4代理服务器源码-易语言
基于 hp-socket 开发的代理服务器, 多连接,速度非常的快 使用了一个端口实现了同时提供 HTTP和SOCKS4的代理协yi,支持 HTTPS 连接 由于是 SOCKS4 所以不支持密码验证 (IE也只支持SOCKS4) SOCKS4的协yi只做了简单的处理,可以自己添加别的,当然如果你懂SOCKS5协yi的话也可以自己添加上 经局域网和远程外网测试,SOCKS4 代理很稳定,HTTP代理的 HTTPS连接稳定,HTTP连接不稳定,多次访问会出现访问错误的问题 (本地和局域网测试不出来可能是存储访问数据的问题吧)
基于Java实现的代理服务器
基于Java实现的代理服务器,实现socks4,socks5协议
易语言-易语言代理服务器源码 http socks4
基于 hp-socket 开发的代理服务器, 多连接,速度非常的快 使用了一个端口实现了同时提供 HTTP和SOCKS4的代理协议,支持 HTTPS 连接 由于是 SOCKS4 所以不支持密码验证 (IE也只支持SOCKS4) SOCKS4的协议只做了简单的处理,可以自己添加别的,当然如果你懂SOCKS5协议的话也可以自己添加上 经局域网和远程外网测试,SOCKS4 代理很稳定,HTTP代理的 HTTPS连接稳定,HTTP连接不稳定,多次访问会出现访问错误的问题 (本地和局域网测试不出来 可能是存储访问数据的问题吧) 暂时没发现是那里的问题,希望有能力的帮忙解决一下。
Proxy Checker:检查 HTTP、HTTPS、SOCKS4 和 SOCKS5 代理服务器的程序。-开源
要求:.NET Framework 4.6.1 或更高版本。


网络编程
