[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 ) ; //信息长度
新闻热点
疑难解答