Последние записи
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
- wprintf как напечатать кириллицу
- Взаимодействие через командную строку
- Сравнение языков на массивах. Часть 1
- Сравнение языков по скорости
- Чтение огромных xml-файлов
- Как в Python+Selenium webdriver открыть новую вкладку в уже открытом браузере?
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
22nd
Май
Сеть на ассемблере: проблема
Posted by maloy under assembler
Питерский2
Здравствуйте))
Пишу программку которая при включении компа отсылает на заданный электронный ящик письмо с временем и датой включения. Все уже готово, кроме, собственно, отправки эмейла. Для этого решил воспользоваться стандартными средствами ВинАпи, вручную реализовав 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] ;Закрываем сокет
;=================================================
vadimych
Питерский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 - искомое
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)