很惭愧,我对于VB6的网络编程不是很了解,难免露怯,希望高手凉解。我的目的:分为VB6写的客户端和服务器端,客户端的程序访问服务器端的程序(类似执行一个DLL的方法)带入参数。服务器端的程序经过计算,向客户端返回数据(类似向客户端返回DLL的属性)。开始想的是利用COM+的方法:服务器端程序用VB6的ActiveX DLL写成dll,注册成COM+应用程序(在“组件服务-计算机-我的电脑-COM+应用程序”中新建一个应用程序)
VB6写的客户端的程序远程访问我服务器上的COM+,执行DLL的方法(有参数),得到DLL的返回属性。
具体做法还没有研究,可能挺复杂的。比如该怎样设定服务器的IP地址,客户端通过什么方式访问远程COM+。后来发现WinSock控件也可以建立C/S构造的程序,似乎和我的要求也很相似,而且还可以写出类似QQ聊天的程序。我的理解是用VB6实现COM+,可以写成ActiveX DLL,在没有被使用时不占用资源,被实例化之后可以进入池子中,降低资源使用,不要求客户端打开某个端口。
而WinSock控件对于连接和端口就很苛刻,而且服务器端的是一个EXE。
我的理解对吗?请问我该采用哪种方式更可靠?
哪里有全面一些的例程?非常感谢!

解决方案 »

  1.   

    使用COM+可以忽略底层细节,而且比自己写winsock来得可靠。只是COM+通信可能受到防火墙的影响。适合在局域网里应用。
      

  2.   

    谢谢参与!
    不过据我浅薄的了解,COM+不会受到客户端防火墙的影响,貌似受到防火墙和端口影响的是DCOM。
    据说,COM+和DCOM不是一回事儿,COM+更拽一些。
      

  3.   

    实际上走TCP/IP协议的通信都可能受到防火墙的影响,相比而言用HTTP协议就好多了,WebServices 很受欢迎也有这个原因。
      

  4.   

    算了,我还是选择WinSock了。
    可能COM+更高级,但据我了解,为了让客户端能够使用,需要将COM+发布成 msi的安装文件。难道需要客户端安装两套吗?(一套是COM+的 msi,另一套是软件的 setup.exe)。WinSock虽然复杂,但网上的资料很多。谢谢fj182(阿花)的参与!
      

  5.   

    不推荐用Winsock,弊端太多了。COM+部署是麻烦了点,不过要是做成面向服务的方式就要好办一点了。