
17.01.2010, 20:37
|
|
Новичок
Регистрация: 20.09.2008
Сообщений: 29
Провел на форуме: 528520
Репутация:
13
|
|
нужно подключаться, не на 25 порт а на 2525 в мейл.ру так, рабочий код.
Код:
#include <iostream>
#include <winsock2.h>
using namespace std;
int main()
{
int err;
WSADATA wsaData;
SOCKET s;
hostent *d_addr;
struct sockaddr_in addr;
char rec[1024];//áóôåð âõîäíûõ ñîîáùåíèé
char sen[1024];//áóôåð èñõ ñîîáùåíèé
err = WSAStartup(MAKEWORD(1, 1), &wsaData);
if(err != 0)
{
cout<<"Error: "<<err<<"\n";
return 1;
}
cout<<"Ha4aJIo Pa6oTIb c coketamu\n";
//Ñîçäàíèå ñîêåòà
s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(s == INVALID_SOCKET)
{
cout<<"Invalid socket\n";
return 1;
}
//ïîëó÷åíèå àäðåñà ñåðâåðà
d_addr = gethostbyname("smtp.mail.ru");
if(d_addr == NULL)
{
cout<<"Error gethostbyname\n";
return 1;
};
//ñîåäèíÿåìñÿ
addr.sin_family = AF_INET;//òèï TCP/IP
addr.sin_addr.s_addr = *((unsigned long *) d_addr->h_addr);
addr.sin_port = htons (2525);
//connect
if(SOCKET_ERROR == (connect(s, (sockaddr *) &addr, sizeof (addr))))
{
cout<<"Error in connect\n";
return 1;
} else
{
cout<<"YsneLIIHoe coegunenue\n";
}
memset(rec, 0, sizeof(rec));
memset(sen, 0, sizeof(sen));
recv( s, rec, sizeof(rec)-1, 0 ); //I отвтет сервера
strcpy(sen,"EHLO smtp.mail.ru\r\n");
send(s,sen,strlen(sen),0);
recv( s, rec, sizeof(rec)-1, 0 );
strcpy(sen,"AUTH LOGIN\r\n");
send(s,sen,strlen(sen),0);
recv( s, rec, sizeof(rec)-1, 0 );
closesocket(s);
WSACleanup();
return 0;
}
|
|
|