如何在局域网中传递信息(100分)

  • 主题发起人 主题发起人 LeeChange
  • 开始时间 开始时间
L

LeeChange

Unregistered / Unconfirmed
GUEST, unregistred user!
前提是:仅仅编制发送端的程序,而接收端不需要任何程序
另: 我原来没有这个怪念头,可我装了一个UPS,用了WinPower2000的程序,他一有什么事就会
向同一子网的所有机器发出消息,弹出一个对话框,上面写这类似市电掉电之类的话.本人非常
好奇,向各位大虾请教一二)
 
通常是通过SNMP的机制来实现,不过每个接收端必须启用snmp监听,你发送相关
的SNMP信息,就会通过对话框显示
 
同意sherman.
 
我并没有特意启用SNMP
 
win2000以上的系统有
net send 计算机名 消息内容
命令,你可以参考一下它的实现
 
终于有了一点眉目了,先谢过sun77wind
 
好像用消息广播吧[:)]听听别人怎么说!!!
 
最简单的方法是用第三方软件
 
win2000 发送的只有2000才收的到。。
 
如果是winNT/2000,在delphi中用
for i:=1 to 255 do
begin
ip:=format('10.65.77.%d',);//10.65.77.换成自己的网段地址
name0:=ip2ComputerName(ip);//自定义的函数,IP==>机器名
if name0='' then continue;//没有机器使用该IP地址
res := SendMsg(机器名,'',消息正文);
case res of
0 : frmMain.StatusLabel.Caption := 'The message is sent';
87 : frmMain.StatusLabel.Caption := 'The parameter is incorrect';
123 : frmMain.StatusLabel.Caption := 'sintax is incorrect';
2273 : frmMain.StatusLabel.Caption := 'Can not find '+frmMain.AddrBox.Text;
else frmMain.StatusLabel.Caption := 'Error: '+IntToStr(res);
end;

//注:SendMsg 可以穿越网络防火墙.
 
用 SendMsg(工作组名,'',消息正文); 一句就行了!!!
 
差一点就过早结束了问题.没想到又得到了这么详细的方法.
我看过Net.exe了,用了不少netapi.dll中的函数.
参观了一下MSDN,发现用NetAPI还可以实现许许多多的功能
 
to tianhf:
你的程序段需要 use 甚么
我怎么编译时报SendMsg未定义
 
NetMessageBufferSend
 
我也是抄的,在 http://go4.163.com/lovejingtao
程序设计==>2 .NT/2000下信息发送器 有完整实例,的确用NetMessageBufferSend
编译后不在集成环境下运行结果才正确.
 
这就象WINPOPUP嘛,记的好象是用到WINDOWS的什么通道,忘了:P
 
如果是Win98怎么办?
 
后退
顶部