Поиск:

Ответ в темуСоздание новой темы Создание опроса
> winsockets & SMTP 
:(
    Опции темы
agv
Дата 17.12.2004, 03:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 15.12.2004

Репутация: нет
Всего: нет



помогите пожалуста разобратся с "програмой". По идеи должна конектится к майл.ру и посылать письмо, но оно не посылается smile
Покажите где ошибки плиз
Код
    .386
    .model flat, stdcall
    option casemap :none
    include \masm32\include\windows.inc
    include \masm32\include\user32.inc
    include \masm32\include\kernel32.inc
    include \MASM32\INCLUDE\wsock32.inc

    includelib \masm32\lib\user32.lib
    includelib \masm32\lib\kernel32.lib
    includelib \masm32\\LIB\WSOCK32.LIB

   .data?
   sockhandle DD ?
   buffrecive DD ?
  .data

   comhelo     DB    "helo asd",0Dh,0Ah
   commailfrom DB    "MAIL FROM: [email protected]",0Dh,0Ah
   comrcptto   DB    "RCPT TO: [email protected]",0Dh,0Ah
   comdata     DB    "DATA",0Dh,0Ah
   comquit     DB    "QUIT",0Dh,0Ah
   comfrom     DB    "FROM: [email protected]",0Dh,0Ah
   comto       DB    "TO: [email protected]",0Dh,0Ah
   comsubj     DB    "SUBJECT: helo",0Dh,0Ah
   

   msgmail     DB    "Helo",0Dh,0Ah
   endmsg      DB    0Dh,0Ah,".",0Dh,0Ah
   hostip      DB    "194.67.23.111",0
   msgok       DB    "OK",0
   msgno       DB    "NO",0
   
   wsaData WSADATA<>
   sa  sockaddr_in<>

  .code

start:

invoke WSAStartup,0101h,ADDR wsaData
   cmp eax,0
      jne  err
     
invoke socket,2,1,0
   cmp eax,-1
       je err
mov sockhandle,eax
       
mov sa.sin_family,02
invoke htons,25
mov word ptr [sa.sin_port],ax

invoke inet_addr,addr hostip
   cmp eax,0
       je err
mov dword ptr sa.sin_addr,eax

invoke connect,sockhandle,addr sa,SIZEOF sa
cmp eax,-1
je err

;     OK   we are connected

mov ecx,sizeof comhelo
mov esi,offset comhelo
call mysend
call myrecv
mov ecx,sizeof commailfrom
mov esi,offset commailfrom
call mysend
call myrecv
mov ecx,sizeof comrcptto
mov esi,offset comrcptto
call mysend
call myrecv
mov ecx,sizeof comdata
mov esi,offset comdata
call mysend
call myrecv
mov ecx,sizeof comfrom
mov esi,offset comfrom
call mysend
mov ecx,sizeof comto
mov esi,offset comto
call mysend
mov ecx,sizeof comsubj
mov esi,offset comsubj
call mysend
mov ecx,sizeof msgmail
mov esi,offset msgmail
call mysend
call myrecv
mov ecx,sizeof endmsg
mov esi,offset endmsg
call mysend
call myrecv
mov ecx,sizeof comquit
mov esi,offset comquit
call mysend


   invoke MessageBox,NULL,addr msgok,addr msgok,MB_OK
   invoke ExitProcess,NULL

invoke closesocket,sockhandle
invoke WSACleanup
invoke ExitProcess,0


err:
invoke MessageBox,0,addr msgno,addr msgno,MB_OKCANCEL
invoke WSACleanup
invoke ExitProcess,0


mysend:
; in ecx=num byte to send, esi=offset string to send

invoke send,sockhandle,esi,ecx,0
cmp eax,0
je err
ret

myrecv:
;out eax=first 4 bytes

invoke recv,sockhandle,addr buffrecive,04,0
   cmp eax,-1
       je err
   cmp eax,0
       je err
mov dword ptr eax,buffrecive
ret

  end start


PM MAIL   Вверх
agv
Дата 17.12.2004, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 15.12.2004

Репутация: нет
Всего: нет



че никто незнает??
PM MAIL   Вверх
S.A.P.
Дата 17.12.2004, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



agv, загляни в разле C++ сети. Я как то недавно задавал там этот вопрос.
PM MAIL   Вверх
agv
Дата 17.12.2004, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 15.12.2004

Репутация: нет
Всего: нет



Perchilla
нашел, но не в том проблема.
я вручную отправлял и все нормально а прога.... smile
PM MAIL   Вверх
oleg1973
Дата 17.12.2004, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 2
Всего: 34



ну дак сервер че пищет?


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
agv
Дата 17.12.2004, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 15.12.2004

Репутация: нет
Всего: нет



oleg1973
где пишет?
PM MAIL   Вверх
S.A.P.
Дата 17.12.2004, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



recv вторым параметром каждый раз возвращает указатель на строку. Пропусти ее через отладчик и запости сюда.
PM MAIL   Вверх
oleg1973
Дата 17.12.2004, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 2
Всего: 34



через printf на консоль да и все smile


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
agv
Дата 17.12.2004, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 15.12.2004

Репутация: нет
Всего: нет



oleg1973
какой printf яж на асме пишу.

2 all
вот что говорит
[запрос 1]
ответ: 220
[запрос 2]
ответ: mail
[запрос 3]
ответ: .ru
[запрос 4]
ответ: esmt
[запрос 5]
ответ: p fr
[запрос 6]
ответ: i, 1

Я уже сам понял что отвечает не то что надо.

подключился в ручную оказалось что это 1 строка того что говорит сервер при подключении:

220 mail.ru ESMTP Fri, 17 Dec 2004 ...

как это исправить???

Это сообщение отредактировал(а) agv - 17.12.2004, 22:55
PM MAIL   Вверх
S.A.P.
Дата 17.12.2004, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



Вроде первым должен идти recv, чтобы принять ответ сервера, потом уже все остальное
PM MAIL   Вверх
oleg1973
Дата 17.12.2004, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 2
Всего: 34



agv
printf прекрасно импортируется из crtdll
да и все другие сишные функ


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
agv
Дата 17.12.2004, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 15.12.2004

Репутация: нет
Всего: нет



Perchilla
нет. Делает то же самое
Добавлено @ 23:06
oleg1973
я незнал sory
PM MAIL   Вверх
agv
Дата 17.12.2004, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 15.12.2004

Репутация: нет
Всего: нет



помогите кто знает плиз
PM MAIL   Вверх
oleg1973
Дата 18.12.2004, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 2
Всего: 34



Код

invoke connect,[mainsocket],sin,sizeof.sockaddr_in
invoke recv,[mainsocket],rbuff,2048,0

вот после конекта recv нужен


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
agv
Дата 18.12.2004, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 15.12.2004

Репутация: нет
Всего: нет



oleg1973
спасибо все заработало smile smile smile


PS
invoke recv,[mainsocket],rbuff,2048,0

надо 2048 байт принимать или можно какоето другое число?

Это сообщение отредактировал(а) agv - 18.12.2004, 00:55
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Windows/DOS"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для Windows/Dos | Следующая тема »


 




[ Время генерации скрипта: 0.0535 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.