Форум: "Сети";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
ВнизNetMessageBufferSend Найти похожие ветки
← →
Piter © (2004-05-30 17:09) [0]Не могу понять я этой функции, точнее то, что она должна возвращать.
В Дельфовом SDK про Result ничего не сказано (?).
В MSDN сказано, но у меня NetMessageBufferSend всегда возвращает ноль, независимо от того - успешно или нет произошла отправка сообщения...
← →
Piter © (2004-05-30 17:14) [1]И еще вот сказано:
servername
[in] Pointer to a constant string that specifies the DNS or NetBIOS name of the remote server on which the function is to execute. If this parameter is NULL, the local computer is used.
Windows NT: This string must begin with \\.
У меня вот W2k и если писать \\ - то сообщение не доходит. С другой стороны, под WinNTможет подразумеваться NT 4.0.
Тогда как же делать? Определять тип ОС, в зависимости от этого использовать "\\" или не использовать? Хм...
← →
SammIk © (2004-05-30 17:25) [2]А в моем сдк за 2000 год сказано, просто
маст хэф \\
← →
SammIk © (2004-05-30 17:26) [3]Да, еще может быть ты пытаещься поставить\\ к днс имени?
Тогда это не прокатит, а к НетБИОС надо подставлять
← →
Piter © (2004-05-30 17:48) [4]ну у моего компа нету DNS имени, так что не могу я туда подставлять...
← →
Piter © (2004-05-30 17:48) [5]SammIk (30.05.04 17:25) [2]
А в моем сдк за 2000 год сказано
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netmgmt/netmgmt/netmessagebuffersend.asp
← →
SammIk © (2004-05-30 18:32) [6]А для начала наиди комп с NT 4 и про тести
← →
Piter © (2004-05-30 20:18) [7]где ж я его найду.
Вы хоть скажите - у вас тоже с "\\" не получается иликак?
И еще вот такой вопрос - при выполнении коммандыnet send * test
сообщение рассылается всей подсети (или всему домену? Или всей рабочей группе?). Как осуществить такой же процесс с помощью сабжевой фунцкии? Если в качестве servername указать"
- ничего не отсылается...
← →
Игорь Шевченко © (2004-05-30 21:31) [8]Piter © (30.05.04 20:18)
> при выполнении комманды net send * test сообщение рассылается
> всей подсети (или всему домену? Или всей рабочей группе?)
Всем компьютерам домена, на которых запущена служба Messenger, насколько мне известно, или открыт Mailslot с именем, который совпадает с именем Mailslot, открываемого этой службой.
> Вы хоть скажите - у вас тоже с "\\" не получается иликак?
Я могу переместить ветку в конференцию "Сети", там быстрее ответят. Там этот вопрос регулярно обсуждается.
← →
Piter © (2004-05-30 21:33) [9]Игорь Шевченко (30.05.04 21:31) [8]
Я могу переместить ветку в конференцию "Сети",
да, да. Пожалуйста, если не сложно, переместите
← →
SammIk © (2004-05-31 09:23) [10]У меня без \\ работает, а если указать нилл, то по идее
должено на локалхосте высветится сообщение
← →
BlackTr (2004-05-31 09:49) [11]servername - этож имя компа, где будет выполняться функция. Там же так и написано: если nil, то функция выполняется локально.
И возвращаемые значения у функции есть :)
← →
SammIk © (2004-05-31 09:55) [12]2[11]
Базару нет, все так и есть)
← →
Piter © (2004-05-31 11:04) [13]BlackTr (31.05.04 09:49) [11]
И возвращаемые значения у функции есть
это и в MSDN сказано. А почему у меня все время ноль возвращает?
← →
Игорь Шевченко © (2004-05-31 11:33) [14]
> А почему у меня все время ноль возвращает?
А где код ?
← →
Piter © (2004-05-31 11:49) [15]Игорь Шевченко (31.05.04 11:33) [14]
ну код сейчас набросаю... только зачем он, если сообщения отправляются, доходят до адресата и отображаютс там? Логичног предположить, что код рабочий...
← →
Piter © (2004-05-31 11:54) [16]Типа того:
function NetSending(Source: string; Destination: string; Text: string): integer;
var WMsgName : WideString;
WMsg : WideString;
MsgLen : integer;
WSource: WideString;
begin
WMsg := Text;
MsgLen := Length(WMsg) * SizeOf(WideChar) ;
WMsgName := Destination;
WSource := Source;
Result:=NetMessageBufferSend(nil,
PWideChar(WMsgName), PWideChar(WSource),
PWideChar(WMsg), MsgLen);
end;
← →
Rouse_ © (2004-05-31 13:13) [17]> [16] Piter © (31.05.04 11:54)
В приведенной тобой же ссылке все замечательно описано:Return Values
If the function succeeds, the return value is NERR_Success.
If the function fails, the return value can be one of the following error codes.
Return code Description
ERROR_ACCESS_DENIED The user does not have access to the requested information.
ERROR_INVALID_PARAMETER The specified parameter is invalid.
ERROR_NOT_SUPPORTED This network request is not supported.
NERR_NameNotFound The user name could not be found.
NERR_NetworkError A general failure occurred in the network hardware.
← →
Rouse_ © (2004-05-31 13:19) [18]> Как осуществить такой же процесс с помощью сабжевой фунцкии?
Адрес должен выглядеть как "\\*"
← →
Piter © (2004-05-31 17:19) [19]Rouse_ (31.05.04 13:13) [17]
блин! Так у меня ВСЕГДА ноль...
← →
Piter © (2004-05-31 17:20) [20]Rouse_ (31.05.04 13:19) [18]
Адрес должен выглядеть как "\\*"
не работает.
С другой стороны у меня и"net send * test"
не работает. Наверное, потому что компьютер не в домене, он у меня вообще не в сети...
можно что настроить, чтобы потестировать?
← →
Rouse_ © (2004-05-31 17:25) [21]I>> Наверное, потому что компьютер не в домене, он у меня вообще
> не в сети...
Ну ты блин даешь :)
Это что ж, прямо как в анекдоте получается, когда покупатель с претензией звонит, мол ваш компьютер не работает, а выясняется что у него уже неделю как света нема? :)
Ну так врубай его в сеть...
← →
Piter © (2004-05-31 17:32) [22]Rouse_ (31.05.04 17:25) [21]
а у меня сейчас сетевой карточки нету...
И вообще, если я посылаю сообщение локально - то все доходит, но функция все равно возвращает ноль!
Если посылаю куда-нибудь, куда дойти не может (сети то нету) - то тоже ноль! Вот в чем дело!
← →
Rouse_ © (2004-05-31 17:51) [23]> [22] Piter © (31.05.04 17:32)
Ну тут я даже не знаю, нема такой машины чтоб проверить а админ не даст корпус курочить и сетевуху вытаскивать чтобы проверить :)
← →
Piter © (2004-05-31 18:19) [24]Rouse_ (31.05.04 17:51) [23]
ну например, если вызвать:net send localhost hi
то пишет "Сообщение успешно отправлено LOCALHOST". И сообщение доходит.
Если вызвать:net send ggg hi
то пишет "Ошибка при передаче сообщения на GGG.. Не удалось найти псевдоним сообщений в сети."
то есть, эта гадина как-то определяет, а у меня всегда ноль! Код я привел... что не так?
← →
Piter © (2004-06-01 00:06) [25]Rouse_ (31.05.04 17:25) [21]
а у тебя сабж все нормально возвращает? Не ноль?
← →
Rouse_ © (2004-06-01 09:38) [26]> [25] Piter © (01.06.04 00:06)
Вечером проверю - скажу, сейчас некогда...
← →
BlackTr (2004-06-01 16:37) [27]У меня дома комп вообще без сетевухи, возвращает не 0
← →
Игорь Шевченко © (2004-06-01 17:06) [28]У меня совет есть - набрав в Яндексе набрать NetMessageBufferSend, можно найти много интересного. Я нашел.
← →
Piter © (2004-06-01 18:22) [29]Игорь Шевченко (01.06.04 17:06) [28]
набрав в Яндексе набрать NetMessageBufferSend, можно найти много интересного. Я нашел
Ну ятоже что-то нашел... но не нашел объяснения почему у меня все время возвращается ноль!
← →
Rouse_ © (2004-06-01 20:30) [30]> [29] Piter © (01.06.04 18:22)
Кинь код на мыло, или, если не большой в эту ветку...
Скорее у тебя там что-то...
← →
Игорь Шевченко © (2004-06-02 12:52) [31]
> но не нашел объяснения почему у меня все время возвращается
> ноль!
Глючный Яндекс, однозначно.
← →
Piter © (2004-06-09 17:38) [32]Rouse_ (01.06.04 20:30) [30]
Кинь код на мыло, или, если не большой в эту ветку...
так я уже кидал код в сообщении [16]
← →
Piter © (2004-06-10 18:05) [33]Ау
← →
Rouse_ © (2004-06-10 20:40) [34]Блин, да нормальный код тебеж обьясняют - проверь хотябы при наличии LoopBack интерфейса
см.> [27] BlackTr (01.06.04 16:37)
← →
Piter © (2004-06-11 18:12) [35]Rouse_ (10.06.04 20:40) [34]
Блин, да нормальный код тебеж обьясняют - проверь хотябы при наличии LoopBack интерфейса
я перестаю тебя понимать. Что значит проверь? А я что делаю по твоему, если у меня сети нет?
Конено, по localhost"у посылаю сообщения! Я же вроде писал, что посылаю на localhost - доходит нормально, появляется окошко с сообщением. Но функция возвращает ноль! Посылаю не на localhost - тоже возвращает ноль!
Я три раза уже это писал...
← →
Piter © (2004-06-13 12:52) [36]Удалено модератором
← →
Verg © (2004-06-13 13:49) [37]Я не силен в этих НЕТ-апях, но...
Лично у меня NetMessageBufferSend при попытке отправить сообщение компу, которго нет в сети (и localhost тоже) возвращает не ноль, а ошибку "Не удалось найти псевдоним сообщения в сети" (2273). net send - такую же.
Если я указываю в имени алиаса имя работающего компа в контексте MS-сети( а не какой там не localhost), то все нормально, сообщение отправляется и принимается отлично.
Кстати.
Вы вот открываете сетевое окружение/соседние компьютеры и что? Видите, что там есть такой сервер "localhost"?
Я не понимаю этого, localhost - это предопределенное доменное имя для хоста участника ip сети (DNS имя для адреса 127.0.0.1 - loopback).
Ну, а при чем тут эти микрософтовские сетевые имена (NetBIOS names)?
Ну, а если tcp/ip вообще, в принципе не устанавливать на компе. И что тогда?
MS-Сеть будет прекрасно работатать на NetBEUI протоколе и в гробу она видала там всякие localhost-ы и прочие 127.0.0.1
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.037 c