Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2014, 00:52   #1
Питерский2
Пользователь
 
Регистрация: 20.05.2014
Сообщений: 29
По умолчанию Сеть на ассемблере: проблема

Здравствуйте))
Пишу программку которая при включении компа отсылает на заданный электронный ящик письмо с временем и датой включения. Все уже готово, кроме, собственно, отправки эмейла. Для этого решил воспользоваться стандартными средствами ВинАпи, вручную реализовав smtp протокол. Но проблемы начались уже при подключении...
Отладчик показал, что ошибку выдает функция "connect".
Помогите разобраться, пожалуйста.
Заранее спасибо.
Код:
Код:
      Invoke MessageBoxA,0,Offset M_Bgn,Offset M_Bgn,0         ;Сообщение о начале исполнения программы
      Invoke GetModuleHandle,0 
      Mov [hInst], EAX
;=================================================
      Invoke WSAStartup, 202h, Offset Skdt                     ;Активируем WSock32.dll
      Test EAX,EAX
Jz @Ok_1
      Jmp @Err
@Ok_1:
;=================================================
      invoke socket, AF_INET, SOCK_STREAM,IPPROTO_TCP          ;Создаем сокет
      Cmp EAX,INVALID_SOCKET
Jne @Ok_2
      Jmp @Err
@Ok_2:
      Mov [hSoc],EAX
;=================================================
      Invoke gethostbyname, Offset Mailru                      ;Получаем адрес mail.ru
      Cmp EAX,NULL
Jne @Ok_3
      Jmp @Err
@Ok_3:                        
                                                               ;Заполняем структуру sockaddr_in
      Mov Sadr.sin_addr,EAX
      Mov Sadr.sin_family, AF_INET
      Invoke htons,25
      Mov Sadr.sin_port,AX                                     ;????????????????  
                                    
      Invoke connect, [hSoc], Offset Sadr, SizeOf Sadr       ;Пытаемся установить подключение... и тут ОШИБКА!
      Test EAX,EAX
Jz @Ok_4
      Jmp @Err
@Ok_4:
 
      Invoke closesocket, [hSoc]                             ;Закрываем сокет
;=================================================
Питерский2 вне форума Ответить с цитированием
Старый 20.05.2014, 00:55   #2
Питерский2
Пользователь
 
Регистрация: 20.05.2014
Сообщений: 29
По умолчанию

Строка Mailru содержит адрес "smtp.mail.ru"
Sadr - структура типа sockaddr_in

Последний раз редактировалось Питерский2; 20.05.2014 в 00:59.
Питерский2 вне форума Ответить с цитированием
Старый 20.05.2014, 06:35   #3
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

Питерский2, gethostbyname возвращает не адрес, а указатель на структуру hostent, из которой уже нужно извлечь адрес.

Код:
invoke gethostbyname,offset name
test eax,eax
je error

mov eax,(hostent ptr [eax]).h_list
mov eax,[eax]
mov eax,[eax] ; в eax - искомое
vadimych вне форума Ответить с цитированием
Старый 20.05.2014, 07:21   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

А зачем все это дело на ассемблере?
waleri вне форума Ответить с цитированием
Старый 20.05.2014, 20:35   #5
Питерский2
Пользователь
 
Регистрация: 20.05.2014
Сообщений: 29
По умолчанию

vadimych, спасибо большое, всё заработало)
Питерский2 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Баннерная сеть (Проблема с выводом ссылки и изображения) Nick_Bl PHP 21 08.04.2013 21:59
Проблема с float в Ассемблере AntonK8 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 07.01.2011 12:38
Проблема со стеком в проге на ассемблере T(h)rasher Помощь студентам 23 26.09.2010 17:18
проблема с массивами в ассемблере student2010 Помощь студентам 1 21.01.2010 19:16
Проблема с работой с файлами на ассемблере ed_ward Помощь студентам 1 04.01.2010 18:29