本示例展示如何使用cTCPClient控件替代winsock.ocx进行网络通信编程,适用于Visual Basic开发者寻求更稳定的Rich Client应用解决方案。
此程序基于ecz00的优化版本创建而来,在网上可以找到的一个使用TCPClient的中文案例提供了重要的思路。感谢原作者的工作。
选择这个插件的原因是VB自带的Winsock虽然功能强大,但在Windows 7 和 Windows 10 系统上由于序列号问题可能无法注册OCX控件,这使得在VB环境下开发IP客户端变得复杂。尝试过使用API方法进行开发但过于繁琐且程序量大。
因此,在原版的基础上经过5天的摸索和优化后,此版本变得更加实用。
使用方法如下:
1. 将vbRichClient5.dll文件放置于C:\Windows\SysWOW64目录(适用于64位系统);
2. 在VB6中点击“工程”->“引用”,将上述dll文件添加进来即可,无需注册;
3. 使用如sscom5.12.1或其他TCP调试软件启动TCP Server,地址设置为 127,0,0,1 端口设为 5676;
4. 运行本程序后点击“连接”按钮,若显示成功则说明已建立连接并可以开始数据交互。
服务端的程序在原版基础上未做修改,请自行进行优化。此软件改进了以下几点:
- 原版本无法显示连接状态和错误信息;
- 只能发送而不能接收消息;
- 使用主机名方式连接时存在困难,需直接使用IP地址或域名才能正常工作;
- 无法展示字节数据值;
- 用户界面进行了优化调整。
改进后的程序解决了重复连接问题,在尝试建立新链接前会自动断开旧的链接。由于vbRichClient5的手册难以找到且无中文版本,建议通过VB6中的“视图”->“对象窗口”,查看vbRichClient5.dll的所有类和方法以获取更多信息。
该软件于2018年2月15日进行了优化并重写。