![]() |
Модераторы: feodorv |
![]() ![]() ![]() |
|
neosapient |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 16.8.2006 Репутация: нет Всего: 4 |
||||
|
||||
neosapient |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 16.8.2006 Репутация: нет Всего: 4 |
Люди подскажите, в чем проблема.
Мне на экране выводиться: dGVzdF9fXzAwMDAzAA== А в статье dGVzdF9fXzAwMDAz Похоже, но не то. Как определить конец возвращаемой строки. Ведь в переменную возвращается число 20, т.е. включая хвост AA== Ну, что я на этот раз делаю не так. ![]() ![]() Это сообщение отредактировал(а) neosapient - 16.10.2006, 15:23 |
|||
|
||||
neosapient |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 16.8.2006 Репутация: нет Всего: 4 |
Понял - кодируется символ конца строки - '\0'
Надо так
Хоть бы это были последние грабли... ![]() |
|||
|
||||
tnt17 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 6.10.2006 Репутация: нет Всего: нет |
У тебя проблема с этим:
invoke socket,2,1,0 на языке С это будет выглядеть так socket(2,1,0). Что озаначают цифры,смотри в h файле с прототипом этой функции описание констант. И сравнивай это все с мсдн. Например: MSDN: SOCKET socket( int af, int type, int protocol ); winsocket2.h. & мсдн: 1) #define AF_INET 2 2) SOCK_STREAM ? SOCK_DGRAM #define SOCK_STREAM 1 : #define SOCK_DGRAM 2 3) протокол = 0. К документации. Пример программы на fasm-e: http://forum.sources.ru/index.php?showtopic=103983 Добавлено @ 16:14 В статье ошибка,посмотри коментарии. ;) http://www.adp-gmbh.ch/cpp/common/base64.html |
|||
|
||||
neosapient |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 16.8.2006 Репутация: нет Всего: 4 |
УРА
А кукарача, а кукарача ... дальше не помню ... а ча-ча-ча ПОЛУЧИЛОСЬ ПИСЬМО ШЛЕТСЯ... ![]() ![]() ![]() Люди, остался маленький баг. Использую функцию для копирования строки strdup() Но она оставляет мусор. Поправьте кто может, я иссяк. Все пошел лечить свой грип... Это сообщение отредактировал(а) neosapient - 16.10.2006, 16:38 Присоединённый файл ( Кол-во скачиваний: 16 ) ![]() |
|||
|
||||
tnt17 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 6.10.2006 Репутация: нет Всего: нет |
lstrcpy юзай.
![]() Добавлено @ 16:58 После каждого приема данных от сервера,нужно чистить буффер.Меняем: #define getmessage(str) {sprintf(buffer,"get:\n %s",str); printf(buffer);fputs(buffer,file);} На: #define getmessage(str) {sprintf(buffer,"get:\n %s",str); printf(buffer);fputs(buffer,file);memset(&buffer, 0,1024);} 1024 размер твоего буффера. |
|||
|
||||
neosapient |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 16.8.2006 Репутация: нет Всего: 4 |
Нет, не то.
Есть глобальный buffer и локальный buffer В общем надо один из них переименовать (скажем глобальный), и компилятор перестанет ругаться. ![]() ![]() Но я думаю утечка памяти идет, и идет она в функции strdup() |
|||
|
||||
neosapient |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 16.8.2006 Репутация: нет Всего: 4 |
Люди еще вопросик.
Вот я шлю на mail.ru кому-то письмо ([email protected]) В инструкции по отправке сказано - пишите на smtp.mail.ru, порт 25 Теперь я шлю на rambler.ru кому-то письмо ([email protected]) В инструкции по отправке сказано - пишите на maild.rambler.ru, порт 25 Но тут у меня закрались сомнения. Как почтовая программа определяет "префикс" (smtp. или скажем maild.)? 1) Допустим в почтовом клиенте есть некая база данных с полными путями. Но тогда я не верю что она полная, врядли наш производитель софта из села Гадюкино включит в свою базу данных все почтовые ящики в каком-нибудь Занзебаре. Эту версию я отметаю. 2) Дотустим есть некая глобальная база данных в инете. Но тогда управляющий этой базой данных врядли будет беспокоиться, о включении самопального почтового ящика нашего программиста из села Гадюкино. И если наш программист не знает о существовании такой базы данных, то на его почтовый ящик не будут приходить письма. Мне такой расклад не нравиться - отвергаю. 3) Возможно есть некий стандартный сервис - я спрашиваю у mail.ru: "А здесь есть почта, можно точный адресок?" В ответ: "Да есть - smtp.mail.ru" или " Нет, нету" Эта идея имеет право на жизнь, но может оказаться проблематичной в реализации. И все же если так и есть - Подскажите так ли это? И что можно почитать? 4) Для всех почтовиков справедливо - smtp.somehost.org Я попробовал через telnet так подключиться: - на rambler.ru - open smtp.rambler.ru 25 -> меня перекинуло на maild.rambler.ru (ура) - на e-mail.ru - open smtp.e-mail.ru 25 -> клинит (плохо) Такой вариант тоже может подойти, но почему то не для всех. Прав ли я что такой метод используется? Возможно есть другой стандартный префикс? ... |
|||
|
||||
ptr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 9 Всего: 14 |
Ты сам задаёшь ей какой smtp сервер использовать. -------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
|||
|
||||
neosapient |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 16.8.2006 Репутация: нет Всего: 4 |
Нет, я отсылаю письмо на [email protected] скажем через The bat. Я пользователь и не представляю как там все работает, в частности какой префикс брать. За меня все продумано и написано сторонними программистами. Вопрос, как эти сторонние программисты определяют префикс? |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 1 Всего: 158 |
ЩАЗ. ![]() если ты ни разу не настраивал почтовую программу, это вовсе не означает, что она "сама все делает". видел когда-нибудь волосато-бородатого дядьку с синими кругами под глазами и перманентным пивным духаном?.. |
|||
|
||||
neosapient |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 16.8.2006 Репутация: нет Всего: 4 |
Мой вопрос из паралельной ветки.
По подробнее, как это посмотреть через telnet. Ну допустим я хочу отправить письмо через на [email protected] То есть мне надо узнать програмно что я должен коннектиться через 25 порт к smtp.mail.ru По логике мне надо сначала обратиться к mail.ru Т.е. я подключаюсь через какой то порт к mail.ru Через какой порт я должен подключаться, чтоб в дальнешем получить нужную мне информацию? Какова дальнешая последовательность действий? Скажите для приема почты (POP3) все тот же префикс или он может быть иной? Если иной какая методика его получения? Часики тикают, ответы нужны к затрашнему вечеру (четвергу). |
|||
|
||||
neosapient |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 16.8.2006 Репутация: нет Всего: 4 |
Ну это вообще не ответ. Я пользуюсь web интерфейсом, предоставляемым mail.ru, на котором рассположен мой почтовый ящик. Чтобы отправить письмо другу, я пишу его почтовый ящик. Далее пишу текст письма и нажимаю кнопку "отправить". Ну ведь все за меня делает web-интерфейс, в том числе определяет точный почтовый сервер получателя (префикс.somemailhost.ru) Как он это определяет??? Надеюсь теперь вопрос понятен. Дайте "разжеванный" ответ. |
|||
|
||||
ptr |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 9 Всего: 14 |
Префикса может вообще не быть.
Он ничего за тебя не делает. Он лишь отправляет письмо на тот сервер, чей веб-интерфейс ![]()
Сервер - тот через который будет отправлена почта.
А это что тогда? (см. картинку) Это сообщение отредактировал(а) ptr - 20.10.2006, 07:03 Присоединённый файл ( Кол-во скачиваний: 13 ) ![]() -------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
||||||||
|
|||||||||
neosapient |
|
||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 16.8.2006 Репутация: нет Всего: 4 |
Это я догадываюсь. -------------------------------------------------
Да, а как сервер определяет куда правильно отправить почту. Предположим я отправляю письмо с [email protected] на [email protected] И так сервак-rambrel должен произвести соединение с smtp.mail.ru. Откуда сервак-rambrel`а знает про существование префикса smtp.mail.ru, ведь единственное что он знает это mail.ru как часть письма адреса получателя [email protected] Это просто текстовое вычленение. ------------------------------------------------
Люди, вы меня не можете понять. Слушайте внимательно мою мысль. Есть два способа для программиста организовать отправку почты: 1) "Ленивый". Тот о чем вы все мне пытаетесь объяснить. Этот способ реализован и в примере, что стаким трудом, но вместе удалось запустить. Письмо отправляется на сервер-почтовик, на котором расположен почтовый ящик отправителя. А затем этот сервак перенаправляет почту по месту назначения, возможно на другой сервер-почтовик. 2) "Геморойный" (потому что ответа не найти, извените ![]() - xxx.ru - smtp.xxx.ru - mail.xxx.ru - еще что то Вопрос понятен? -------------------------------------------------------
Гляжу внимательно - внутри обведенной рамки, в строке SMTP address в скобках "smtp.domain.tdl" <-- видете префикс А ниже вводим то самое domain.tdl Почему такой префикс? Возможно тут подходит идея:
Но для e-mail.ru префиксом выбран mail. Но несбрасываю со счетов версию про сервис
|
||||||||||||
|
|||||||||||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |