|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.09.2010, 05:07 | #1 |
Пользователь
Регистрация: 17.06.2008
Сообщений: 16
|
Mail.ru agent на WinSock (ActiveX)
Пытаюсь реализовать работу с MMP-протоколом через ActiveX-контрол MSWinsck.ocx
После коннекта отправляю HELLO-пакет, но ответа не приходит. Все константы согласно описанию протокола. Примерно так, основной кусок (на VB, но не суть): Код:
Правильно ли реализована отправка пакета? Последний раз редактировалось kiber_punk; 27.09.2010 в 05:10. |
27.09.2010, 13:14 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
а зачем вам через ActiveX то?
через простой WinSock не катит? Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
29.09.2010, 04:36 | #3 |
Пользователь
Регистрация: 17.06.2008
Сообщений: 16
|
Ну во первых в VB всё через ActiveX.
Ну и с ActiveX работать удобно, нет привязки к языку. Отклонились от темы. Пробовал и через сокеты Delphi - тоже самое. Кто работал с протоколом, подскажите пожалуйста, что не так? Пакет вроде бы "правильный". |
03.10.2010, 22:26 | #4 |
Пользователь
Регистрация: 27.09.2010
Сообщений: 18
|
Когда-то давно сталкивался. От VB лучше откажись, правильно тебе посоветовали.
В Делфи используй поток TMemoryStream и через него делай всё. Заголовок реализуй в виде структуры типа record, так удобней. У меня пару лет назад это выглядело так: type TMraPacket = record magic : Cardinal; proto : Cardinal; seq : Cardinal; msg : Cardinal; dlen : Cardinal; from : Cardinal; fromport : Cardinal; reserved :array[1..16]of char; end; Заполняешь структуру, пишешь в поток, добавляешь в поток необходимые данные (в зависимости от типа пакета) и про dlen не забывай. Потом этот поток отправляешь и потоком же принимаешь (удобней разбивать хедер и даннные). Вот ещё кусок: function MRIM_PACKET(msg_, dlen_: Cardinal):TMraPacket; begin with Result do begin magic:=CS_MAGIC; proto:=PROTO_VERSION; seq:=0; msg:=msg_; dlen:=dlen_; from:=0; fromport:=0; reserved:=#0#0#0#0#0#0#0#0#0#0#0#0# 0#0#0#0; end; end; Правильный пакет для хелоу будет сформирован так: MRIM_PACKET(MRIM_CS_HELLO,0); Остальное сам. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
mail.ru agent хочу написать | FAiver | Работа с сетью в Delphi | 6 | 01.11.2011 07:46 |
Mail Agent | doniyor | Работа с сетью в Delphi | 5 | 29.04.2010 08:03 |
работа с компонентом mail.ru agent | D_E_N | Работа с сетью в Delphi | 1 | 19.12.2009 20:09 |