|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Окт 27, 2004 20:07:00 · Поправил: Безпощадный даос Нужно быстро написать попап (программа, отсылающая-как net send- и принимающая сообщения(причем иногда на группу компов одновременно(широковещание, как я понимаю))). Какие функции позволяют это делать? Помочь может всё. Особенно исходник... |
|
|
Дата: Окт 27, 2004 22:56:15 Видимо, фиктивный ответ самому себе - лучший способ привлечь внимание к теме на этом сайте. Господа создатели форума: сделайте так чтобы недавно созданные темы тоже появлялись при входе в форум по понятным причинам. |
|
|
Дата: Окт 28, 2004 00:46:31 Не совсем так. Кто-то из модераторов (не я, в данном случае) решил поместить это в HELHEIM. Причину см. в правилах. Однако я так понимаю, ты поленился погуглить. |
|
|
Дата: Окт 28, 2004 14:05:18 НЕПРАВДА! Во-первых, в HELHEIM эту тему создал я сам (не обратил внимание, что это значит..). На самом деле ей место в NetWorks (считайте, что она там или переместите её туда(если можно)). Во-втрорых я "Гуглил" и "Яндексил" всю ночь и нарыл следующее: используется функция NetMessageBufferSend(http://vbnet.mvps.org/index.html?code/network/net messagebuffersend.htm): Я и написал, руководствуясь win32.hlp: .386 .model flat,stdcall include \MASM32\include\kernel32.inc include \MASM32\include\masm32.inc include \MASM32\include\netapi32.inc includelib \MASM32\lib\kernel32.lib includelib \MASM32\lib\masm32.lib includelib \MASM32\lib\netapi32.lib .data elf db 'E',0,'L',0,'F',0,0,0,0 len=$-kaval .code start: invoke NetMessageBufferSend,offset elf,offset elf,offset elf,offset elf,2 .if (eax==0) invoke StdOut,offset kaval .endif invoke ExitProcess,0 end start ELF - имя моего компа в сети. А оно не работает. Ну я ещё перепробовал разные варианты с АСКИ- и Юникод-строкаи - ни в какую... Но даже если бы оно работало это было бы не всё. Нужно ж ещё и принимать сообщения... Короче, я в отчаянии. Подскажите кто-нибудь! |
|
|
Дата: Окт 29, 2004 05:14:15 · Поправил: Stub А у тебя служба Messenger включена? Передавать надо именно в Unicode, в описании четко прописано LPCWSTR NET_API_STATUS NetMessageBufferSend( LPCWSTR servername, LPCWSTR msgname, LPCWSTR fromname, LPBYTE buf, DWORD buflen ) |
|
|
Дата: Окт 29, 2004 05:20:15 Еще способ - заюзать net send :) |
|
|
Дата: Окт 29, 2004 07:13:51 Вот я тут попробовал накодить эту штуку :), получилось конечно ужасно (потестить не могу, т.к. нет у меня сетки да и сервиса нужного). В архивчике еще несколько примеров по теме на других языках... 1676044022__NetSend.zip |
|
|
Дата: Окт 29, 2004 13:41:46 Messenger, как я понимаю, во время теста должна быть отключена. Интересно, что когда я дизассемлил IDA'ой и WDASM'ом net.exe и попап, я искал, но не нашел этой функции...(хотя нашёл множество других из NetApi)(это так, к слову) Пример я проверю сегодня же(спасибо большое) Вопрос ещё и в том, как принимать такие сообщения. У меня есть подозрения, что протокол передачи - UDP... Можно проверить FireWall'ом и LanSpy (на моём компе не даёт сделать такую проверку, жалуется какой-то на сетевой экран, а что за экран - не понять(я никакого не ставил) - не суть). И тогда, видимо попап - просто UDP-сервер. Но это всё догадки, которые лишь можно проверить. Проверьте, если кто может. |
|
|
Дата: Окт 31, 2004 09:48:00 · Поправил: valterg И тогда, видимо попап - просто UDP-сервер Все гораздо хуже. Советую начать от Адама. В 3.1, 95-м и 98-м была служба Winpop. Работает она по протоколу NETBEUI - самоделка от МС. Я проверил через виртуальную машину с 98-м и без протокола TCP/IP - сообщения прекрасно ходят в обе стороны : из 98-го в 2000-й и сообщение посланное через net send попадает в Winpop. Посмотрел я и экспорты функций в net.exe в 2000-м. Ковыряться лень - там есть API из mpr.dll со словами connection. Похоже строится канал и уже по нему передают сообщения. Возможно что при отсутствии NETBEUI работает NETBIOS через TCP/IP, но это я оставляю тебе.... |
|
|
Дата: Ноя 2, 2004 15:52:26 А почему нельзя использовать сокеты, создать тот же клиент-сервер на UDP? или необходимо именно из 98 посылать аналог net send на машины с 2000? |
|
|
Дата: Ноя 2, 2004 17:13:41 Ура!! Нашёл. Набрал в Яндексе что-то вроде NETBEUI Winpopup и неожиданно для себя обнаружил ссылку на след. инструкции: Отправка: Способ 1. Функция NetMessageBufferSend, как и было сказано выше. Способ 2(у меня только он заработал...) - работа с почтовыми ящиками... - всё в примере (Дельфи, правда) Прием: Один несложный способ Создаём почтовый ящик с именем \\.\mailslot\messngr , В случае, если уже какая-нибудь служба (сообщений или попап) работает, то вернётся ошибка. По каждому срабатыванию таймера вызываем GetMailSlotInfo(MailslotHandle, NIL, NextMsgSize, @MsgCount, NIL); для определения размера ящика, а затем (если NextMsgSize>5) вызываем ReadFile(MailslotHandle, PChar(NewLine)^, NextMsgSize, MsgSize, nil); То, что считалось, - строка в формате строка From,#0,строка To,#0,строка Msg. Если же NextMsgSize<5, То это левый NextMsgSize, поэтому просто фиктивно читаем его для удаления из ящика ReadFile(MailslotHandle, DummyBuffer, NextMsgSize, MsgSize, nil); P.S. И да простят меня Админы за презренные Дельфийские строки, ибо так нагляднее 937565678__netsend.dpr |
|
|
Дата: Ноя 3, 2004 13:55:32 Теперь получившемуся приложению нужно придать переносимость... Вообще я не знаю, работает ли в Линукс служба сообщений? Если да то, как отправить и принять сообщение в этой операционной системе? |
|
|
Дата: Ноя 4, 2004 09:08:09 работает ли в Линукс служба сообщений? Наверняка она там есть, но не на NETBEUI. Правда я видел какую-то поделку, умеющую посылать сообщения, но увы не помню названия. А про переносимость ты уже почти ответил : надо smtp/pop3 использовать - это универсально, но медленно. Либо закладываться на что-то подобное ICQ, но без серверов, с открытым кодом и портабельное. Winpopup вряд ли тебе подойдет, т.к. в NT и 98-м они совсем по-разному сделаны, IMHO. В NT нет ящика, а есть очередь. |
|
|
Дата: Ноя 10, 2004 18:12:21 Почтовые ящики - не в том смысле, что что-то@что-то.ru. Это такой механизм обмена данными между программами, работающими на одном или разных компьютерах. Это во-первых, во вторых я нашёл ссылку, в которой автор предлагал исходник программы под Виндовс и Линукс, которая мне и нужна (в Линукс, по описанию использовался SMB). Я послал письмо с предложением выслать мне копию, а он послал письмо, где послал меня. Точнее послал не он, а админы. Содержание непонятно, но ясно, что ответа я не дождусь... А требования таковы: сообщения, посылаемые из-под Линукс моей программой должны ловиться в Виндовс обычным попапом и наоборот... Т.е. не факт, что клиент и сервер (если можно так их назвать) - моих рук дело (в противном случае я не обращался бы сюда) P.S. Новая версия с исправленным багом _1063908822__netsend.dpr |
|
|
Дата: Ноя 11, 2004 15:10:57 · Поправил: valterg в Линукс, по описанию использовался SMB В чистом Линуксе SMB нет - его реализует приложение Samba. Если тебя это устраивает, тогда проблем нет, т.к. Samba вроде даже с текстами распространялась.... Было какое-то приложение, которое из Виндов в Линуксовую систему сообщения посылала, но там другой протокол вроде. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.066 |