vb免费源码分享下载网站?vb源代码网站

大家好,今天小编来为大家解答vb免费源码分享下载网站这个问题,vb源代码网站很多人还不知道,现在让我们一起来看看吧!

网管小贾/sysadm.cc

各位爱好VB的小伙伴们,大家好!

说起使用VB来编写各种小程序、小工具,一般情况下可以说是易如反掌、手到擒来,非常容易上手。

往窗体上拖几个按钮、文本框,不一会儿就能做个像模像样的小程序了,内心的成就感也得到了满足。

不过如果要让各位写一个TCP/UDP的网络通讯程序,可能VB就有点那个啥不太自信了。

呵呵,不是说VB写不了网络程序,写是也能写,不过通常的作法非常麻烦。

大部分的传统操作是,往窗体上拖几个WinSock控件,然后在WinSock的事件上写代码。

虽然这样做没什么问题,只是当客户端数量猛增时,我们就不得不同时增加WinSock控件的数量。

如果能猜出来有几个客户端还好说,要是猜不出来,那么就完蛋了!

总不能无限制地增加WinSock控件的数量吧?

于是有些聪明的小伙伴想出了一个好办法,那就是用数组,对,控件数组!

好家伙,这一个两个的还好对付,这一下子出来个数组,好像把事件搞得更加复杂了。

并且,也没有摆脱对控件的依赖啊!

好了,啰嗦了这么多,其实这次是来给大家伙献宝贝的!

没错,你猜对了,接下来我就向小伙伴们介绍一个不用WinSock控件照样实现并且还更方便好用的VB编写网络通讯解决方案。

OK,让我们请出今天的主角:VbRichClient!

VbRichClient简介

这个VbRichClient是国外一位大神使用VB开发的一个VB环境下的框架程序。

嗯嗯,你没眼花,他就是用VB写的哈!

这个框架程序可以实现很多超级牛叉的功能,包括图形、数据库等等,其中就有我们今天要讲的网络功能。

多说一句,VbRichClient所包含的网络通讯功能不但稳定性较WinSock高,并且所需书写的代码量也非常少,最重要的是,我们不再需要拖放控件了!

(文末有源代码下载哦!)

更重要的是,对于未知数量的服务端或客户端,也只需要增加一些类似的代码而不需要再麻烦搞什么控件数组了。

关于TCP/UDP

好了,在正式开始之前,我们先简单复习一下TCP/UDP这两个好哥们的相关知识吧!

这两个哥们是常见的两种网络通讯协议,也可以说是方式,在这里我们说得简单一些,没必要长篇大论,只讲部分关键所涉及到后面程序的知识就行。

首先,我们来说一说TCP这位哥哥。

说到TCP,大家都知道三次握手,不过我们不讲什么晦涩的协议知识,只说它是怎么干活的。

通常TCP连接方式主要分为服务端和客户端两部分,一般情况下服务端是一个,而客户端则可以是多个,多个客户端去连接一个服务端,然后它们相互可以发送和接收数据。

建立TCP连接的做法是,客户端先发送一个信号给服务端,然后服务端接收到信号后回送信号给客户端,最后客户端收到服务端的回信后再发送一个信号给服务端。

有点像两个人打招呼哈,互相打完招呼后,服务端和客户端都已经确信对方在线,连接也就成功建立起来了。

由些可见,TCP这位哥哥做事比较严谨,他是两点之间两头跑,必须跑到位,数据送到手里才算完成工作。

因此这种方式也被称为可靠连接,我们可以将这种方式想像成两个人打电话,因为它是点对点的通讯,通常信号传送不会丢失。

其次,我们再说一说UDP这位弟弟。

UDP这位弟弟就不像它的哥哥那样严谨了,倒是有点像寄送快递,快递现在在哪儿,什么时候送到是一概不关心,发信方离开手就不管了。

当一台电脑发送(广播)信号出去后,这个信号就会被一个网络中的其他所有电脑接收到,而只有真正需要这个信号数据的电脑才会真正的接收到,其他电脑会忽略丢弃信号。

看这不靠谱的样子,UDP有时也被称为不可靠连接,因为它并没有真正的与其他通讯对象建立连接,而且所发送出去的信号数据也存在不可达(NAT等)或中途丢失的风险。

虽然UDP看上去工作得不咋地,其实它也是有些用场的,比如在无法明确建立点对点连接的前提下(可能一开始要找谁发信方自己的不清楚),又比如一对多或多对多的通讯时,UDP就可以施展拳脚了。

VbRichClient如何实现TCP/UDP通讯

有了前面的基础知识,我们运用VbRichClient也就更加容易一些了。

VbRichClient实际使用的是RC6.dll动态链接库文件,因此在VB中将其引入。

网络上绝大多数内容都说的是RC5,我这儿只讲最新版的RC6,比旧版代码要改进许多,也更适合更新版的操作系统。

TCP的实现方法

先来介绍一下VbRichClient实现TCP通讯的方法。

找三台电脑,一台做服务器,另两台做客户端。

当然,服务端和客户端不仅限于这些数量以及系统版本。

192.168.1.66-服务端/Win10(刘备)192.168.1.88-客户端一/Win10(关羽)192.168.1.99-客户端二/Win11(张飞)

1、点击TCPBind按钮,服务端绑定IP和端口在0.0.0.0:35353上并启动侦听,等待客户端连接。

当然,你也可以绑定192.168.1.66这个本地IP地址,只不过只能是同网段的本地客户端才可以连接了。

2、在两个客户端分别指定服务端的IP地址和侦听端口,然后点击TCPBind绑定。

3、在客户端一侧点击连接TCPConnect…按钮来连接服务端,在服务端接收到连接请求的同时,客户端也各自获取到了连接句柄。

4、连接已经建立,这个时候我们就可以用客户端向服务端发送信息了。

比如从两个客户端分别发送以下信息到服务端。

客户端二(192.168.1.88)=>服务端(192.168.1.66)\n“大哥,俺是张飞,听说今天做核酸换地方了?”

5、不仅如此,服务端也可以发送信息给客户端。

不过注意这里有些讲究,服务端要先指定客户端,然后才能发送,一次一个。

(网上流行的一些代码并没有这个方法的具体实现内容。)

比如,从服务端分别回复发送如下信息到两个客户端上。

服务端(192.168.1.66)=>客户端二(192.168.1.99)\n“翼德,还是老地方,不过今天10点半就结束,你得抓点紧!”

6、客户端和服务端通讯很愉快,为了下次能安全连接,标准做法就是在最后要优雅地断开连接。

在客户端一侧点击断开连接TCPDisconnect…按钮即可结束连接,服务端也正常获取到对应客户端的断开信息。

整个一套下来如行云流水,极度完美啊!

有兴趣的小伙伴还可以多打开一些客户端试试。

UDP的实现方法

看完了TCP的实现方法,接下来我们再看看VbRichClient是如何实现UDP的通讯。

UDP的特点是,各端点绑定各自的本地IP地址和端口以及远程IP地址和端口

我们在这儿举个例子,将端点A分别与端点B和端点C绑定。

端点A(刘备):本地192.168.1.66:3416-远程192.168.1.88:5616端点B(关羽):本地192.168.1.88:5616-远程192.168.1.66:3416端点C(张飞):本地192.168.1.99:5616-远程192.168.1.66:3416

通过这样的设定,端点A就可以和端点B或端点C对话了,但请注意它们之间的关系没有谁是主谁是辅。

当然了,要说清楚,你想和谁对话,那么远程IP就指定谁,只绑定,不需要刻意建立连接。

绑定好以后,我们就可以发消息了。

端点A(192.168.1.66)=>端点C(192.168.1.99)\n“翼德,你来了没?”

反过来也是一样的,只要绑定自己和对方的IP和端口,你就可以随意发送消息。

端点C(192.168.1.99)=>端点A(192.168.1.66)\n“大哥,我刚打疫苗去了,马上到哈!”

端点C(192.168.1.99)=>端点B(192.168.1.88)\n“二哥,你不是说没事嘛!那…现在咋办啊?”\n

可以看得出,发送消息自由切换,并不拘泥于建立什么连接,非常方便灵活。

源代码下载

网络上并没有完整版的VbRichClient源代码,我是经过一番调试研究,最终获得成功的。

本源代码不仅可以实现基本的通讯功能,而且还可以在此基础上补充了更多的代码写法,可以实现更多的服务端和客户端的通讯功能。

另外,我将TCP/UDP两部分实现代码都放在一套源代码中,代码注释写得很清楚,调试起来也很方便。

VBRichClient代替WinSock演示源代码.7z(2.54M)

下载链接:https://pan.baidu.com/s/1bvJTCnggoDzw6_XlrPqM6w

提取码:<关注公众号,发送000961>

写在最后

从前面那三个人的对话示例中,我们也可以看到使用VbRichClient可以非常方便地实现多方网络通讯。

具体是如何实现的,小伙伴们可以通过阅读源代码来了解。

我可以告诉大家,使用VbRichClient书写的代码是真的可以非常简练易上手,功能还一点儿也不差。

好了,不多说了,大家体会过就知道了。

最后说个题外话,从前面刘关张的对话中,大家是否看得出来现在的队伍越来越不好带了呢?

到底是张飞真傻,还是关羽怀有私心?

你要是刘备,你会怎么做呢?

网管小贾/sysadm.cc

如果你还想了解更多这方面的信息,记得收藏关注本站。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平