WEB开发网
开发学院软件开发VC 用VC++开发WinPopup的增强版 阅读

用VC++开发WinPopup的增强版

 2010-07-15 20:44:15 来源:WEB开发网   
核心提示:在Internet Explorer 中,微软带有两个很好的局域网通信工具:Chat 和NetMeeting,用VC++开发WinPopup的增强版,它们能使局域网中的用户通过互发消息文本、电子白板,甚至语音和视频图像进行交流,本文不打算在这里将开发过程中的每一步细节都写出来,而是只就一些重点问题进行说明,但是它们都需

在Internet Explorer 中,微软带有两个很好的局域网通信工具:Chat 和NetMeeting,它们能使局域网中的用户通过互发消息文本、电子白板,甚至语音和视频图像进行交流,但是它们都需要指定一个服务器才能正常工作。在通常由若干台Windows 95/98 组成的对等网中,真正适用的消息传送工具仍然是微软通过网络组件安装的WinPopup.EXE,但微软好像忘记了这个小程序,使它从最初发行到现在依然是老样子,程序界面跟不上时代不说,每次只能发送38 个字节的消息文本,消息不能保存等不足使人感到十分遗憾。既然认为它不好,那我们就自己写一个。就像VC ++中某个类的增强版都带有Ex 后缀一样,我们也决定将增强后的WinPopup.EXE 命名为WinPopup Ex.EXE,图1 是完成后的WinPopupEx 的外观。

----要在局域网中实现计算机之间的通信,可以采用的办法很多,最容易想到的是针对某一个网络协议进行编程,如TCP/IP、IPX/SPX 和NetBEUI,但是控制稍显复杂,不易实现网络广播及只能针对某一个协议,显得不够灵活。微软为我们提供了内部进程的通信(IPC)接口,如果按照ISO 的OSI 模型划分,它工作在会话层,与它的下一层(传输层)采用何种协议无关。在IPC 接口中,MailLosts(邮槽)和NamedPipes(命名管道)都可以在服务器进程和客户机进程之间进行通信,而且不论服务器进程和客户机进程是驻留在同一台机器,还是通过网络联系在一起,IPC 接口都能正确地将信息从一个进程传送到另一个进程。而我们要做的就是在网络中的每台计算机上以它的“计算机名”建立一个邮槽或命名管道,其他计算机如果要发送信息给某台计算机,它只需要像打开一个文件一样(后面您将看到,的确是采用文件操作函数)打开以那台计算机命名的邮槽或命名管道,然后像写文件一样将数据写入,最后关闭它就完成了一次通信操作。

----邮槽和命名管道各有优缺点,命名管道是可靠的,在发送方不能确认接收方已接收到数据时,它会返回一个错误,但是它对网络广播操作就显得力不从心;而邮槽则刚好相反,它可以将消息一次传送给一组计算机,比如一个“工作组”或整个局域网,但它不能保证发送出去的数据一定就被接收方所接收。考虑到WinPopup 使用的是邮槽,为保证连续性,我们也决定采用MailLosts(邮槽)机制,至于通信的不可靠性,您在后面将看到,我们用一点手工代码就可以弥补它。

----在这个增强版本中,我们要实现以下一些WinPopup 没有的功能:

消息可以自动保存, 根据您的选择最多可以保存30 天;

消息大小不再限制在38 字节, 每条消息最多可以达到400 字节;

对单个计算机发出的消息, 可以要求接收方确认“已收到";

可以广播消息到局域网中的多个工作组;

可将它缩小为系统状态条图标, 当有消息到达时, 它可以发出声音或闪动图标加以提醒;

可定制的消息文本显示字体和颜色;

可选择让它开机自动运行;

自动收集网络信息, 您可以在“网络邻居”列表中选择接收人, 而不是手工输入它。

----本文不打算在这里将开发过程中的每一步细节都写出来,而是只就一些重点问题进行说明,开发环境是Celeron 333、64M、Windows 98 和Visual C ++6.0。

1 2 3  下一页

Tags:VC 开发 WinPopup

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接