socks5协议转http协议源码.docsocks5代理可以看rfc1928socks5的用户名口令认证方法看rfc1929http代理可以看rfc2616socks5代理可以支持tcp和udp而http只支持tcp所以这个代理转换器只支持tcp写作原因很多软件都有socks5认证方法但是它们不支持http认证方法而从原理上可以使用http认证方法(因为它们没有届用udp)所以写这个软件可以方便的使其它程序可以使用http代理如联众或是foxmailCODE#include<>#include<>#include<>#defineINIT_SOCKET(){WSADATAwsadata;WSAStartup(MAKEWORD(2,2),&wsadata);}#defineCLOSESOCKET(x)closesocket(x)#defineCLEAN_SOCKET(){WSACleanupO;}//#definePROTO_EXCHANGE_TIMEOUT15#definePROTO_RECVRESP_TIMEOUT75#definePROTO_SENDRESP_TIMEOUT10#defineWAIT_AND_RECV(sd,buf,len,waittime,recvflags)do{\structfd_setsset;\structtimevalwaited;\=waittime;=0;\FD_ZERO(&sset);FD_SET(sd,&sset);\if(select(sd+l,&sset,NULL,NULL,&waited)!=1||(len=recv(sd,buf,len,recvflags))==-1)\len二=・1;\}while(0);#(constchar:f:proxyaddr,intproxyport,constchar*dstaddr3ntdstport)intproxysd=-charbufT2048];intlen;char*ptoken;intstatus;structsockaddr_ininaddr;if(!proxyaddr||!proxyaddr[0]||proxyport<1||!dstaddr||!dstaddr[0])return-1;DEBUG_DUMP(” 代 理 :%s:%d, 目fe:%s:%d\n,\proxyaddr5proxyport,dstaddr,dstport);len =sizeof(inaddr);memset(&inaddr,OJen);if((=inet_addr(proxyaddr))==INADDR_NONE)return-1;=;=htons(proxyport);//connecttoproxyif((proxysd=socket(,SOCK_STREAM,0))==-1)return-1;if(connect(proxysd,(structsockaddr*)&inadd
socks5协议转http协议源码 来自淘豆网www.taodocs.com转载请标明出处.