|
0 / 0 / 0
Регистрация: 18.09.2009
Сообщений: 4
|
|
Не могу отправить данные к серверу18.09.2009, 09:50. Показов 2813. Ответов 12
Метки нет (Все метки)
Добрый день..
Есть протокол MMP mail agent http://agent.mail.ru/ru/developers/licence.html- вот его описание Создаю сокет ,устанавливаю соединение , разобрался как формировать заголовок, далее отправляю пакет HELLO , приходит правильный ответ ASK со всеми параметрами , далее необходимо авторизоваться ...вот тут у меня проблемка... не знаю как правильно отправлять текстовые и числовые данные после заголовка... " Все числовые данные передаются как четырехбайтные целые НЕ в сетевом формате, т. е. первым идет старший байт, последним младший. Четырехбайтовые беззнаковые целые обозначаются UL. Текстовые данные передаются с префексированной длиной, т. е. сначала UL, а потом строка (в кодировке windows-1251) длины UL без завершающего нуля. Обозначение в дальнейшем - LPS." Скажем , указав длину пакета в заголовке , я начинаю отправлять данные через функцию send int send (s, buf, len, flags) int s; char *buf; int len; int flags; Сначала надо отправить UL с длиной следующей строки... я не совсем понимаю как это сделать.. ведь данные будут отправляться в UL и как они будут преобразовываться к const char* -C++ ругается... я также пробовал отправлять в виде структуры этот тип также не получается.... Если кто не поленился заглянуть в описание протокола , подскажите что делать..
0
|
|
| 18.09.2009, 09:50 | |
|
Ответы с готовыми решениями:
12
Не могу отправить запрос GET к серверу Не могу отправить данные с МК на РС по USARTu(Atmega8535) Не могу отправить данные POST -ом в приложение |
|
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|||||||||||
| 18.09.2009, 10:58 | |||||||||||
|
сначала всё формируешь, потом отправляешь поток байт
буферы можно и по переменным разбирать и на экран выводить
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 18.09.2009
Сообщений: 4
|
|||||||||||
| 18.09.2009, 12:11 [ТС] | |||||||||||
|
Я делаю так
MRIM_CS_LOGIN_ACK 0х1004 MRIM_CS_LOGIN_REJ 0x1005 Добавлено через 6 минут Да вообще при обращениях к любым свойствам answer2.dlen и т.д выдает этот ответ Добавлено через 42 секунды А длина полученных данных len2 = 0 Добавлено через 29 минут Да и почему если я делаю так
ругается что cannot convert from 'char [x]' to 'char [y]'
0
|
|||||||||||
|
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|||||||
| 19.09.2009, 10:58 | |||||||
|
ты посылаешь структуры, а посылать надо массивы байтов
и уже потом посылать эти данные из буфера ты не посылаешь структуры, send всё равно в сокет пишет байты
0
|
|||||||
|
0 / 0 / 0
Регистрация: 18.09.2009
Сообщений: 4
|
||||||
| 19.09.2009, 12:27 [ТС] | ||||||
|
Т.е надо , грубо говоря , надо создать одну структуру , в потом заполнить её , а потом отправлять ...в один присест функцией send?
Добавлено через 1 час 18 минут
0
|
||||||
|
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|||||||||||||||||||||||||||||||
| 20.09.2009, 09:06 | |||||||||||||||||||||||||||||||
|
серверу всё равно по частям приходит или всё сразу
можно вообще сделать сперва
тут собственный пример, как всё работает, когда все интерфейсы уже построены
запрашивает страницу и ответ выводит на NULL (это значит на stdout) это построено на MsgBuf'ах, они спрятаны внутрях это почищенная (типы приведены к единой форме, лишние буферы убраны)
и ответ к ней
0
|
|||||||||||||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 18.09.2009
Сообщений: 4
|
|
| 20.09.2009, 14:39 [ТС] | |
|
Ух...авторизовался....
![]() Сейчас буду пробовать отправить сообщение =)
0
|
|
|
0 / 0 / 0
Регистрация: 02.12.2009
Сообщений: 8
|
||||||
| 02.12.2009, 22:27 | ||||||
|
Здравствуйте! Я столкнулась почти с такой же проблемой, как в заголовке темы.
Описываю суть: есть две части одной программы (они разделены в потоках), 1-я половина читает данные с сетевой карты (пользуюсь сырыми сокетами), а вторая должна отправлять данные. Вот с этим-то и проблема! Функция connect проходит на "ура" (коннектиться получается), а данные не отправляются (send возвращает -1). 1) Почему это может происходить? 2) Я читала два разных мнения: -что нельзя отправить данные, пользуясь сырыми сокетами (это по-просту не получится) -и наоборот, что данные должны отправляться. В сети полно примеров с использованием потоковых сокетов, но при использовании их данные даже не читались. Надеюсь на вашу поддержку! Буду благодарна за любую помощь. Код отправки данных на всякий случай прилагаю (ОС WinXP, компилятор С++ Builder 6.0)
0
|
||||||
|
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|||||||||||||||||||||
| 03.12.2009, 02:34 | |||||||||||||||||||||
и, похоже, она даже не дойдёт до туда
0
|
|||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 02.12.2009
Сообщений: 8
|
|
| 05.12.2009, 23:19 | |
|
Не заработало
![]() Может быть, сырые сокеты не позволяют выполнить отправку данных?
0
|
|
|
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|
| 06.12.2009, 08:49 | |
|
не, они позволяют, только там надо, вроде, пакет вручную собирать
у меня по udp отправилось (без сборки), но за bind ить и принять не получилось хотя в нете пишут, что за bind ить можно
0
|
|
|
0 / 0 / 0
Регистрация: 02.12.2009
Сообщений: 8
|
|
| 21.12.2009, 10:16 | |
|
все заработало! данные передаются!
хочу попробовать сделать то же самое с использованием winpсap. столкнулась с такой ошибкой в файле types.h: error Make sure bool, true and false are defined even when using the C compiler. Почему она может возникать? Драйвер скачан, все программы поставлены.
0
|
|
|
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|||||||||||
| 21.12.2009, 11:59 | |||||||||||
|
в C подключить stdbool.h
лучше, конечно, писать в одном языке
там и правила написания различаются
0
|
|||||||||||
| 21.12.2009, 11:59 | |
|
Помогаю со студенческими работами здесь
13
Не могу отправить данные при нажатии на кнопку
Отправить команды серверу Отправить команды серверу Отправить серверу строчку Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
|