站内搜索:     
站点首页破釜学院编程开发C# 语言 → Visual C#实现Windows信使服务
正在加载相关信息.....
Web 站内搜索
Visual C#实现Windows信使服务
】【打印】【加入收藏】【关闭收藏到新浪ViVi】【收藏到365KEY】 浏览字号:
日期:2006-04-17 人气: 出处:天极
 现在有很多网络管理软件都具备网络上信息实时传送的功能,虽然有些网络通讯软件功能比较强大,有的软件不仅可以传送文本信息,还可以传送二进 制文件等。但它们都有一个无法克服的缺点,那就是分发比较困难,信息传送双方计算机都需要安装通讯软件的客户端和服务器端软件,并且只有但双方 都打开相应软件时,才可能进行信息传送。而信使通讯就可以克服上述缺点,由于信使服务在Windows 2000系统以上都是自带的,并且此服务在安装完 Windows 2000以上后的缺省状态是打开的。所以只要网络的二台计算机安装Windows 2000以上系统,不再需要安装其他软件,就可以通过此服务实现信 息传送了。当然这种网络信息传送分发也有先天不足,就是只能传送文本信息,如果您需要传送二进制文件等复杂的信息或数据,就无法使用这种方法了 。

  一.简介Windows的信使服务及其使用方法:

  首先进入"控制面板",在"管理工具"中选择"服务"后,就可以得到如 图01所示界面,图01就是Windows服务的运行窗口:

图01:计算机Windows"服务"运行 界面
  信使服务在Windows操作系统中对应的服务名称是"Messager"。Windows操作系统给此服务的定义是"发 送和接收系统管理员或者"警报器"服务传递的消息。"在缺省状态信使服务是启动的,如果发现它处于"停止"或者"已禁用"状态,请启动它,因为后面介绍的 程序能够正常运行的条件之一就算此服务处于"启动"状态。

  利用Windows系统也可以通过信使服务发送信息,具体操作如下:

  1. 在"桌面"上选中"我的电脑"后,单击鼠标右键,在弹出的菜单中选择"管理"后,弹出"计算机管理"对话框:

  2. 打开"共享文件夹",选中 "共享"后,单击鼠标右键,在弹出的菜单中选择"所有任务"中的"发送控制台消息",具体如图02所示,当完成以上操作就可以得到如图03所示界面:

图02:利用"信使服务"实现信息发送 界面之一
  3. 在图03所示界面中,单击"添加"按钮,输入要发送到的计算机的IP地址或主机名称,在"消息"文本框 中输入要发送的信息后,单击"发送"按钮,则信息就通过信使服务发送到对方了。

图03:利用"信使服务"实现信息发 送界面之一


  以上就是利用Windows的自身的信使服务来发送信息的具体步骤。

  二.Visual C#通过信使服务实现网络信息传送关键 技术:

  虽然.Net FrameWork SDK中提供了许多开发网络程序的类库,但这些类库中却没有提供调用信史服务的方法,所以要调用信 史方法只有使用WinAPI函数,这个WinAPI函数NetMessageBufferSend,它位于"Netapi32.dll"文件中。以下就是NetMessageBufferSend函数在Visual C#中的声明方法:

[DllImport ( "Netapi32" , CharSet = CharSet.Unicode ) ]
public static extern int NetMessageBufferSend (
string servername , //服务器名称,为NULL
string fromname , //接收方名称,可为IP或计算机名称
string msgname , //信息名称,为 NULL
string buf , //信息
int buflen ) ; //信息长度
  对照NetMessageBufferSend函数参数分别输入相应的接收方名称和信息内 容即可,可见NetMessageBufferSend的使用方法还是非常简单的。下面就来详细介绍Visual C#通过信史服务实现网络信息传送的具体实现方法。

>>>> 进入论坛交流 <<<<