疯了!要怎么写才能连接上Socks4代理服务器?

chixiao chixiao 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我要搞一个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。 。

weixin_42135073

http socks4代理服务器源码-易语言

基于 hp-socket 开发的代理服务器, 多连接,速度非常的快 使用了一个端口实现了同时提供 HTTP和SOCKS4的代理协yi,支持 HTTPS 连接 由于是 SOCKS4 所以不支持密码验证 (IE也只支持SOCKS4) SOCKS4的协yi只做了简单的处理,可以自己添加别的,当然如果你懂SOCKS5协yi的话也可以自己添加上 经局域网和远程外网测试,SOCKS4 代理很稳定,HTTP代理的 HTTPS连接稳定,HTTP连接不稳定,多次访问会出现访问错误的问题 (本地和局域网测试不出来可能是存储访问数据的问题吧)

weixin_38700320

基于Java实现的代理服务器

基于Java实现的代理服务器,实现socks4,socks5协议

zlfoak

易语言-易语言代理服务器源码 http socks4

基于 hp-socket 开发的代理服务器, 多连接,速度非常的快 使用了一个端口实现了同时提供 HTTP和SOCKS4的代理协议,支持 HTTPS 连接 由于是 SOCKS4 所以不支持密码验证 (IE也只支持SOCKS4) SOCKS4的协议只做了简单的处理,可以自己添加别的,当然如果你懂SOCKS5协议的话也可以自己添加上 经局域网和远程外网测试,SOCKS4 代理很稳定,HTTP代理的 HTTPS连接稳定,HTTP连接不稳定,多次访问会出现访问错误的问题 (本地和局域网测试不出来  可能是存储访问数据的问题吧) 暂时没发现是那里的问题,希望有能力的帮忙解决一下。

weixin_38651929

Proxy Checker:检查 HTTP、HTTPS、SOCKS4 和 SOCKS5 代理服务器的程序。-开源

要求:.NET Framework 4.6.1 或更高版本。

素寰韶
评论 10
收藏 已收藏
分享
返回顶部
chixiao
网络编程 18,356 成员 64,161 内容