Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Почему не коннестится???

4.1K
03 июля 2006 года
GRIENDERS
117 / / 06.06.2006
Други! Значит надо мне отправить E-mail. А он почему-то выдает "Socket false - error 10038", причем как в online так и в offline. И еще там парочка вопрос прямо в листинге.

#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 коннектится нормально.
11K
04 июля 2006 года
Ireul
90 / / 15.06.2006
[QUOTE=GRIENDERS]Други! Значит надо мне отправить E-mail. А он почему-то выдает "Socket false - error 10038", причем как в online так и в offline. И еще там парочка вопрос прямо в листинге.

#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))
4.1K
04 июля 2006 года
GRIENDERS
117 / / 06.06.2006
[QUOTE=Ireul]if (!WSAStartup(MAKEWORD(2,0), &d)) - неверно.
пиши if (!WSAStartup(MAKEWORD(2,2), &d))[/QUOTE]
Не помогает!!!
18K
05 июля 2006 года
bldragon
4 / / 30.06.2006
[QUOTE=GRIENDERS]Други! Значит надо мне отправить E-mail. А он почему-то выдает "Socket false - error 10038", причем как в online так и в offline. И еще там парочка вопрос прямо в листинге.

#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). Попробуй, может заработает.
547
05 июля 2006 года
Hydra
488 / / 20.06.2006
попробуй такую проверку на создание сокета
 
Код:
IOSock=socket(PF_INET, SOCK_DGRAM, 0 );
  if (IOSock==INVALID_SOCKET) LastError=WSAGetLastError(); }

 
Код:
"HELO axel.ru\r\n", //любое имя POP3 сервера, поддерживающего анонимную отправку
"MAIL FROM: lamer@asa.ru\r\n", // любое
4.1K
05 июля 2006 года
GRIENDERS
117 / / 06.06.2006
[QUOTE=Hydra]попробуй такую проверку на создание сокета
 
Код:
IOSock=socket(PF_INET, SOCK_DGRAM, 0 );
  if (IOSock==INVALID_SOCKET) LastError=WSAGetLastError(); }

 
Код:
"HELO axel.ru\r\n", //любое имя POP3 сервера, поддерживающего анонимную отправку
"MAIL FROM: lamer@asa.ru\r\n", // любое
[/QUOTE]

Хотя все еще ни фига не коннектится, но все равно спасибо. Кстати, а какие POP3 серверы поддерживают анонимную отправку?
46K
21 декабря 2008 года
Lorni
1 / / 21.12.2008
Обрати внимание на приоритет логической операции:
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)
8.9K
04 января 2009 года
Kap
77 / / 10.09.2006
Что мешает запустить программу в debug режиме, написать в окне watch строку "err,hr" (писать то что заключено в кавычки без ковычек), поставить на каждой строчки точку останова и выяснить где ошибка?. Кстати, насчет логической операции тебе подсказали совершенно верно.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог