IOSock=socket(PF_INET, SOCK_DGRAM, 0 );
if (IOSock==INVALID_SOCKET) LastError=WSAGetLastError(); }
Почему не коннестится???
#include "stdafx.h"
#include "winsock2.h"
#include "conio.h"
int _tmain(int argc, _TCHAR* argv[])
{
WSADATA d;
if (!WSAStartup(MAKEWORD(2,0), &d))
printf("WSAStartup ................. success\n");
SOCKET s;
if (s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)!=SOCKET_ERROR)
printf("Socket ................. success\n");
else printf("Socket false\n");
char * mes[] = // сообщение для отправки
{
"HELO axel.ru\r\n", //здесь можно любое имя???
"MAIL FROM: [email]lamer@asa.ru[/email]\r\n", //а здесь?
"RCPT TO: прямо мене на почту\r\n",
"DATA\r\n",
"ну ништяковое письмо просто очень\r\n",
".\r\n",
"QUIT\r\n",
NULL
};
SOCKADDR_IN adr;
adr.sin_family = AF_INET;
adr.sin_port = htons(25);
adr.sin_addr.s_addr = inet_addr("194.67.23.111");//smtp.mail.ru
if (connect(s, (sockaddr*)&adr, sizeof(adr))==0)
{
printf("Connect success .... \n");
int i = 0;
char c[20];
do{
send(s, mes, sizeof(mes),0);
i++;
}while(mes);
}
else printf("Connect false - error %d\n",WSAGetLastError());
closesocket(s);
WSACleanup();
getch();
return 0;
}
Кстати, через telnet коннектится нормально.
#include "stdafx.h"
#include "winsock2.h"
#include "conio.h"
int _tmain(int argc, _TCHAR* argv[])
{
WSADATA d;
if (!WSAStartup(MAKEWORD(2,0), &d))
printf("WSAStartup ................. success\n");
SOCKET s;
if (s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)!=SOCKET_ERROR)
printf("Socket ................. success\n");
else printf("Socket false\n");
char * mes[] = // сообщение для отправки
{
"HELO axel.ru\r\n", //здесь можно любое имя???
"MAIL FROM: [email]lamer@asa.ru[/email]\r\n", //а здесь?
"RCPT TO: прямо мене на почту\r\n",
"DATA\r\n",
"ну ништяковое письмо просто очень\r\n",
".\r\n",
"QUIT\r\n",
NULL
};
SOCKADDR_IN adr;
adr.sin_family = AF_INET;
adr.sin_port = htons(25);
adr.sin_addr.s_addr = inet_addr("194.67.23.111");//smtp.mail.ru
if (connect(s, (sockaddr*)&adr, sizeof(adr))==0)
{
printf("Connect success .... \n");
int i = 0;
char c[20];
do{
send(s, mes, sizeof(mes),0);
i++;
}while(mes);
}
else printf("Connect false - error %d\n",WSAGetLastError());
closesocket(s);
WSACleanup();
getch();
return 0;
}
Кстати, через telnet коннектится нормально.[/QUOTE]
if (!WSAStartup(MAKEWORD(2,0), &d)) - неверно.
пиши if (!WSAStartup(MAKEWORD(2,2), &d))
пиши if (!WSAStartup(MAKEWORD(2,2), &d))[/QUOTE]
Не помогает!!!
#include "stdafx.h"
#include "winsock2.h"
#include "conio.h"
int _tmain(int argc, _TCHAR* argv[])
{
WSADATA d;
if (!WSAStartup(MAKEWORD(2,0), &d))
printf("WSAStartup ................. success\n");
SOCKET s;
if (s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)!=SOCKET_ERROR)
printf("Socket ................. success\n");
else printf("Socket false\n");
char * mes[] = // сообщение для отправки
{
"HELO axel.ru\r\n", //здесь можно любое имя???
"MAIL FROM: [email]lamer@asa.ru[/email]\r\n", //а здесь?
"RCPT TO: прямо мене на почту\r\n",
"DATA\r\n",
"ну ништяковое письмо просто очень\r\n",
".\r\n",
"QUIT\r\n",
NULL
};
SOCKADDR_IN adr;
adr.sin_family = AF_INET;
adr.sin_port = htons(25);
adr.sin_addr.s_addr = inet_addr("194.67.23.111");//smtp.mail.ru
if (connect(s, (sockaddr*)&adr, sizeof(adr))==0)
{
printf("Connect success .... \n");
int i = 0;
char c[20];
do{
send(s, mes, sizeof(mes),0);
i++;
}while(mes);
}
else printf("Connect false - error %d\n",WSAGetLastError());
closesocket(s);
WSACleanup();
getch();
return 0;
}
Кстати, через telnet коннектится нормально.[/QUOTE]
Вроде нормально, правда, я обычно вместо s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) писал s = socket(AF_INET, SOCK_STREAM, 0). Попробуй, может заработает.
Код:
Код:
"HELO axel.ru\r\n", //любое имя POP3 сервера, поддерживающего анонимную отправку
"MAIL FROM: lamer@asa.ru\r\n", // любое
"MAIL FROM: lamer@asa.ru\r\n", // любое
Код:
IOSock=socket(PF_INET, SOCK_DGRAM, 0 );
if (IOSock==INVALID_SOCKET) LastError=WSAGetLastError(); }
if (IOSock==INVALID_SOCKET) LastError=WSAGetLastError(); }
Код:
"HELO axel.ru\r\n", //любое имя POP3 сервера, поддерживающего анонимную отправку
"MAIL FROM: lamer@asa.ru\r\n", // любое
"MAIL FROM: lamer@asa.ru\r\n", // любое
Хотя все еще ни фига не коннектится, но все равно спасибо. Кстати, а какие POP3 серверы поддерживают анонимную отправку?
if (s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)!=SOCKET_ERROR)
В твоем случае сначала выполняется сравнение socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) != SOCKET_ERROR, а потом результат сравнения присваивается (=) в переменную s.
Все, что тебе нужно сделать это взять в скобки
if ((s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP))!=SOCKET_ERROR)
Что мешает запустить программу в debug режиме, написать в окне watch строку "err,hr" (писать то что заключено в кавычки без ковычек), поставить на каждой строчки точку останова и выяснить где ошибка?. Кстати, насчет логической операции тебе подсказали совершенно верно.