


[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#通过信史服务实现网络信息传送的具体实现方法。
  三.本文中的程序设计、调试和运行的环境:
  (1).微软公司视窗2000服务器版。
  (2).visual studio .net 2003企业构建版,.net framework sdk 1.1版本号4322。
  四.visual c#通过信史服务实现网络信息传送的具体实现步骤:
  以下就是visual c#通过信史服务实现网络信息传送的具体实现步骤:
  1. 启动visual studio .net。
  2. 选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框。
  3. 将【项目类型】设置为【visual c#项目】。
  4. 将【模板】设置为【windows应用程序】。
  5. 在【名称】文本框中输入【visual c#实现通讯信使】。
  6. 在【位置】的文本框中输入【e:/vs.net项目】,然后单击【确定】按钮。这样在"e:/vs.net项目"目录中就创建了一个名称为"visual c#实现通讯信使"的文件夹,里面存放的就是"visual c#实现通讯信使"项目的所有文件。
  7. 把visual studio .net的当前窗口切换到【form1.cs(设计)】窗口,并从【工具箱】中的【windows窗体组件】选项卡中往设计窗体中拖入下列组件,并执行相应操作:
  二个lable组件。
  二个textbox组件,分别用来输入接收方的ip地址或计算机名和发送信息内容。
  一个button按钮,并在这个组件拖入设计窗口后分别双击它们,则系统会在form1.cs中分别产生这一个组件click事件对应的处理代码。
  8. 把visual studio .net的当前窗口切换到form1.cs的代码编辑窗口,在form1.cs的首部的引入命名空间的代码区中,用下列代码替换form1.cs中由系统自动产生的引入命名空间代码:
using system ;
using system.drawing ;
using system.collections ;
using system.componentmodel ;
using system.windows.forms ;
using system.data ;
using system.runtime.interopservices ;
//申明winapi函数需要使用到此命名空间
private void initializecomponent ( )
{
 this.textbox1 = new system.windows.forms.textbox ( ) ;
 this.textbox2 = new system.windows.forms.textbox ( ) ;
 this.button1 = new system.windows.forms.button ( ) ;
 this.label1 = new system.windows.forms.label ( ) ;
 this.label2 = new system.windows.forms.label ( ) ;
 this.suspendlayout ( ) ;
 this.textbox1.location = new system.drawing.point ( 124 , 58 ) ;
 this.textbox1.name = "textbox1" ;
 this.textbox1.size = new system.drawing.size ( 212 , 21 ) ;
 this.textbox1.tabindex = 0 ;
 this.textbox1.text = "" ;
 this.textbox2.location = new system.drawing.point ( 124 , 126 ) ;
 this.textbox2.multiline = true ;
 this.textbox2.name = "textbox2" ;
 this.textbox2.size = new system.drawing.size ( 212 , 82 ) ;
 this.textbox2.tabindex = 1 ;
 this.textbox2.text = "" ;
 this.button1.location = new system.drawing.point ( 122 , 232 ) ;
 this.button1.name = "button1" ;
 this.button1.size = new system.drawing.size ( 106 , 36 ) ;
 this.button1.tabindex = 3 ;
 this.button1.text = "发送" ;
 this.button1.click += new system.eventhandler ( this.button1_click ) ;
 this.label1.location = new system.drawing.point ( 8 , 66 ) ;
 this.label1.name = "label1" ;
 this.label1.size = new system.drawing.size ( 132 , 23 ) ;
 this.label1.tabindex = 4 ;
 this.label1.text = "ip地址或计算机名:" ;
 this.label2.location = new system.drawing.point ( 78 , 134 ) ;
 this.label2.name = "label2" ;
 this.label2.size = new system.drawing.size ( 46 , 23 ) ;
 this.label2.tabindex = 5 ;
 this.label2.text = "内容:" ;
 this.autoscalebasesize = new system.drawing.size ( 6 , 14 ) ;
 this.clientsize = new system.drawing.size ( 356 , 297 ) ;
 this.controls.add ( this.button1 ) ;
 this.controls.add ( this.textbox2 ) ;
 this.controls.add ( this.textbox1 ) ;
 this.controls.add ( this.label2 ) ;
 this.controls.add ( this.label1 ) ;
 this.formborderstyle = system.windows.forms.formborderstyle.fixedsingle ;
 this.maximizebox = false ;
 this.name = "form1" ;
 this.text = "visual c#实现通讯信使" ;
 this.resumelayout ( false ) ;
}

private void button1_click ( object sender , system.eventargs e )
{
 byte [ ] bbuffer = system.text.encoding.unicode.getbytes ( textbox2.text );
 int nret = netmessagebuffersend ( null , textbox1.text , null , textbox2.text , textbox2.text.length * 2 + 2 ) ;
}
[dllimport ( "netapi32" , charset = charset.unicode ) ] 
public static extern int netmessagebuffersend ( 
 string servername , //服务器名称,为null
 string fromname , //接收方名称,可为ip或计算机名称
 string msgname , //信息名称,为null
 string buf , //信息
 int buflen ) ; //信息长度
新闻热点
疑难解答