没有合适的资源?快使用搜索试试~ 我知道了~
基于VB的局域网聊天传输工具文档介绍
4星 · 超过85%的资源 需积分: 10 27 下载量 199 浏览量
2009-05-13
15:37:58
上传
评论
收藏 79KB DOC 举报
温馨提示
试读
21页
基于VB的局域网聊天传输工具文档介绍,希望能够给大家带来帮助。。。。。。
资源推荐
资源详情
资源评论
局域网聊天传输工具(带 VB 源码)
引言
以前才学 的时候下载了一个高人写的文件传输工具,觉得很神奇。后来自己慢慢了解了一点
,慢慢琢磨了那位高人写的程序,对程序作了大部分修改,增加了一个人性化控制和功能,使文件传
输工具更加完善了。但是由于最近我们公司要对一部分人屏蔽外网而那些人又非得聊天和传文件,所以就
写了这个工具。程序写的时间比较短也没有经过严格测试,肯定存在一些问题,希望大家原谅,更希望有
兴趣的朋友更加完善它,由于本人时间有限也只能写到这个程度了,比如对群聊功能的增加,使用
来显示计算机名等等,这些本来是很简单的工作我确实是没时间了。以下是对这个程序用到的 主要控件
控件的一些说明,希望大家对它有个小的了解,这样对接触本程序也不会太陌生,因为时间关
系程序没有太多的注释希望大家见谅,如果有什么疑问的可以跟帖。
对于局域网用户中的编程爱好者来说,如果能自己编一个局域网通信程序,那么这一切将是多么美妙!可
是,如果要从头开始完全由自己来编写一段用于通信的程序,必须对相关的网络协议及其他的一些较底层
的技术有较深入的了解,这可不是一件容易的事。而现在有了 控件,一切就不同了,它已经替
你封装了所有烦琐的技术细节,并提供了访问 和 网络服务的方便途径。你只需通过设置控件的
属性并调用其方法就可轻易连接到一台远程计算机中,并且还可以双向交换数据,而这一切都不需你了解
的细节或调用低级的 。
控件可以供 、,或 !" 的开发人
员使用。本文以 # 企业版为开发环境来向大家介绍一下 控件的初步应用。
协议即数据传输协议,它允许创建和维护与远程计算机的连接,使其彼此可以进行数据传输。利用
协议通讯必须分别建立客户应用程序和服务器应用程序。
在创建客户应用程序时,必须知道服务器计算机名或其 地址$存于 %&' 属性(、及服务器
计算机进行侦听的端口$存于 %& 属性),然后调用 方法。
创建服务器应用程序时,就应相应设置一个侦听端口$ 属性(并调用 方法。当客户机
需要连接时$(,就会发生 %) 事件。为了完成连接,你可以在
%) 事件中调用 " 方法。建立连接后,任何一方计算机都可以发送、接收对方数
据。如果你要发送数据,需调用 * 方法。当接收到数据时,会发生 + 事件,调用
+ 事件中的 , 方法就可以获得对方传送的数据。
不过,不知大家注意到没有,上述程序都需要有一台计算机做为服务器,但如果我们的局域网中没有哪台
计算机是可以常开的,也就是说,如果服务器端程序没有运行的话,其他客户端程序也没有办法通信。而
这种情况却可能是经常出现的-至少,我所用的局域网那就是这样的。难道这样我们就无法享受局域网通
信的乐趣了吗?
不要急,记得吗,我们的 控件还有另一个主角: 协议。
协议也称为用户数据报文协议,是一个无连接协议。何谓无连接协议?就是说利用此协议连接
时,不必象 协议那样:需要服务器端侦听,客户机端请求连接,服务器端建立连接后双方才能通信。
另外, 应用程序可以是客户机,也可以是服务器程序,而不必向 应用程序那样必须分别建立客
户机程序和服务器程序。
下面,来简述一下 协议通信的过程: 协议中,为了在甲乙两机中传输数据,必须先分别设
置两机的 属性;再将甲机的 %&' 属性设置为乙机的 地址,%& 属性设置
为乙机的 属性值,此时甲机调用 * 方法就可以传送数据了,乙机同样使用
+ 事件中的 , 方法来获取甲机发送给乙机的信息。如想乙机向甲机传送数据,只需仿
照上面的过程设置即可。
用 协议来传输信息较 协议来说简单的多,它无须侦听(./),也无须请求连接
(0//.),就象我们平时发信一样,只要写好地址及收信人姓名并发送出去即可。我们可以借此来
编写一个局域网中的信息传送程序,下面来简单介绍以下程序中想实现的功能及其基本思想:
首先,我们一定想让程序的图标显示在 1&1 中而不显示在任务栏中吧!这要是自己编程实
现可不是太容易,幸好 光盘中在 &&22+32""21&1中有一个现成的程序,
我们只要把它编译成 114!控件,然后在编写自己的程序时添加此控件即可。其使用方法十分简
单,它已经定义好了鼠标单击、双击等事件,你只需编写相应的鼠标事件即可,这里不再多说。
程序的关键是: 协议在通讯时要知道对方的 和 ,这要如何实现呢?最简单的方法是建立
一个配置文件,里面放置了局域网上每台计算机的名字、 和 ,在程序初始化时读出所有信息,在
程序中只要知道向谁通信,读出其对应的 和 即可。
我们知道了每台计算机的 和 ,但我们怎样才能知道其它计算机是否在线呢,否则发出信息别
人收不到怎么办?我们可以把此程序放在启动菜单中,让其一开机就自动启动,并最小化,放于窗口右下
角的 1&1 中。在程序刚开始运行时,它会自动向它从配置文件中所知道的所有 发一条信息:
“我来了!”,如果有计算机在线,它会自动返回一条信息:“欢迎!”,如此则两机通信成功,它们会分别
把对方的名字加入到自己的可通信人名单中去;如果有计算机关机,程序在退出之前会自动向所有人告别:
“再见!”,接收到此信息的计算机会自动把发送信息的计算机的名称从自己的可通信人名单中去除。这样,
如果某人不在线,你将无法发送信息给它;如果除了你以外,其他人都没有开机,那你的可发送人名单中
将没有任何人。而其它人只要一上线,会自动去你那里“登记”,其他人只要一离线,会自动去你那里“告
别”,你可以据此知道他人是否正在使用计算机,你甚至可以以此程序来统计他人的每天上机时间,不错
吧!
好了,一个局域网通信的程序的基本模型已经有了,并不复杂吧!大家赶快动手吧,来享受用自己的
程序来聊天的乐趣!
不过,要想编写一个出色的程序,不光是要有良好的创意与功能,更重要的是程序的兼容性与容错性。
本例中,对错误处理没有做详细的解释,关于这一点,大家可以在 控件的 事件及其帮助
中找到满意的答案。
另外,还可以从以下几方面来考虑功能的扩充:如传送图形、声音等多媒体信息、局域网互传文件
(主动传送)、历史通话记录、系统日志、个人上机时间统计等等,而所有的这一切仅仅取决于你的想象
力与你的聪明才智!下面,笔者以传送文件为例来讲一讲其功能实现的代码。
你可以把本地的文件(图形、声音等可以先存成临时文件)以二进制文件的方式来打开它,将其内容全部
读入一个 31 类型的数组中,本地机代码如下:
*&&15$(31
*&"6
"75&73189
":;
*<=$9(
":"9
*&"+&15$9"(
689>>&15$"(
"
89
再向远程机传送这个字节数组
+4*&15
远程机收到这个数组之后,再以二进制文件的方式打开一个新目标文件,将数组内容写入这个新打开
的文件,如果是 3&" 图片就将其放入 " 图片框中,如果是 <+ 文件,就播放。这样,局域网中的
两个人就可以通过语言、图片、文字来交流了。
远程机代码如下:
+3?+$31+316(
*&+5$931(31
4,+5>+31+331
@告诉 控件收到的是字节数组类型的数据
"72&"2文件名73189
:931
"89>>&1$(
!
89
*3
ABCDABD
AC:EDA:*D
本程序源码:
主窗体源码:
.?,./.0/:F'
.?/. %0'%:F'G
.?/.%0:F'#
?.%.%:F'
?%0:F'99E
?00:H
+ *61&37IJ77*67$1
=<*6>1<66>1<&6>1&6(
6
&K66
+3&39?=6$(
&6
:;4&3949
&394!:4&394$(=
,+$71"7>4&394$(>""4=F72"47(:77=
494%&':4&394$(
.
494%&':,+$71"7>4&394$(>""4=F72
"47(@4&394$(
.*
.!3
.*
/!
@&6
@ :;4&3949
@&394!:,+$71"7>4&394$(>""4=F72"47(=
@494%&':,+$71"7>4&394$(>""4=F72
"47(
@.!3
@.*
@/!
@,+$71"7>&4&394!>""4=F72"47(:
.*3
+3&&*9?$*!6(
*!
;
&?4=<@9
9
!9$;(4!:77=
6!7不能发送空消息7>>7提示7
!9$;(4
.!3
.*
!9$9(4!:!9$9(4!F6
!9$9(4!:!9$9(4!F77F/<F+3/<F!9$;(4!F+3F
+3/<
*61&!9$9(4=<*>?%0>?00>;
494*!9$;(4!F7>7F494F7>7F6
4!9$;(4!:77
!9$;(4
J
0.%&/!
494*7==?7F7>7F494F7>7F6
0*:=
494*7 &?=7F7>7F494F7>7F6
0*:
.*
.*
I
&?4=<@9
.*
.*3
+3 &?L1"$L1*6>=6(
L1*:JH=
6!$7你要退出程序?7>M>7提示7(:+3N=
.*
.*
.*
.*3
+3 &?*$(
4&94.3*:
&&"$(6
:,$71"7>""4=F72"47(
&6
:9*$(
&":"$$(>7:7(
$(:&"$9(
0.%&/!
$(OP77=
494%&':$(
494%&:EJ;
剩余20页未读,继续阅读
资源评论
- wxysys2019-06-19感谢分享,很有用
mynameishesile
- 粉丝: 147
- 资源: 84
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功