在局域网内通过代理,如何用程序发信到163邮箱
这几篇文章都看了
http://community.csdn.net/Expert/topic/4408/4408359.xml?temp=.7666437
http://dev.csdn.net/article/50/article/51/51895.shtm
http://topic.csdn.net/t/20041205/14/3616555.html
http://topic.csdn.net/t/20010427/09/106735.html
我的程序在接受到代理(sock5)发回的“5 0”后,
发送sock5req2,但recv不到代理的返回信息,为何?
谢谢!
struct sock5req2
{
char VER;
char CMD;
char RSV;
char ATYP;
unsigned long DSTADDR;
unsigned short DSTPORT;
};
struct sock5ans2
{
char VER;
char REP;
char RSV;
char ATYP;
unsigned long BNDADDR;
unsigned short BNDPORT;
};
int main()
{
SOCKET smtp = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
//...sock5req1成功发送,代理返回5 0
struct sock5req2 *req2 = (struct sock5req2*)SendBuf;
req2->VER = 5;
req2->CMD = 1;
req2->RSV = 0;
req2->ATYP = 1;
req2->DSTADDR = inet_addr("220.181.12.11");//smtp.163.com 220.181.12.11
req2->DSTPORT = htons(25); // IPPORT_SMTP
nRet = send(smtp,SendBuf,sizeof(req2),0);
if(nRet == SOCKET_ERROR)
{
send_error(smtp);
return 1;
}
struct sock5ans2 *ans2 = (struct sock5ans2*)RecvBuf;
memset(RecvBuf,0,1024);
nRet = recv(smtp,RecvBuf,1024,0); //-*******recv 总是不成功********为何?
if(nRet == 0 || nRet == SOCKET_ERROR)
{
recv_error(smtp);
return 1;
}
cout<<ans2->VER<<" "<<ans2->REP<<" "<<ans2->ATYP<<endl;
in_addr server;
server.S_un.S_addr = ntohl(ans2->BNDADDR);
cout<<inet_ntoa(server)<<":"<<ntohs(ans2->BNDPORT)<<endl;
//...
}
问题点数:80、回复次数:2Top
1 楼thht4321(牛牛)回复于 2006-03-28 12:51:17 得分 0
求购视频会议源代码!
用提供者请电:
tanhua1962@163.com
Top
2 楼filebat(Mark)回复于 2006-06-12 17:51:33 得分 80
晕,Top




