首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

散分:独立于微软的WebService、小型IIS,将BS通信模式搬进CS,该如何解决

2012-02-19 
散分:独立于微软的WebService、小型IIS,将BS通信模式搬进CS重发,这次加了分,但是,抱歉,好像我只能散到100分

散分:独立于微软的WebService、小型IIS,将BS通信模式搬进CS
重发,这次加了分,但是,抱歉,好像我只能散到100分。。。
很少上CSDN。用户名和密码老忘记,上一个用户名(zhou138168...)怎么也登陆不上去,无奈,只能重新注册一个马甲,上一次发了个帖子,标题是《代码自动生成、Com开发、串行化反串行化、UI等太多了》 也许有人还记得呵呵。

最近花了十天时间,写了个库,旨在将BS的优秀通信模式搬进CS,初步实现了HTTP1.1的常用,如Get ,Head,Post,支持文件的上传下载,支持Redirect。可做简单的Web 服务器。出发点是为了在CS模式下,通信更方便。最关键的是,有了这些,程序员可以很方便的在CS模式下,按照HTTP协议去完成通信工作。参考的标准是.net 2.0 相关类及JavaServlet,写了Vb6下的实现。
如下:
HTTPContent
HTTPContentDetail
HTTPContentDetails
HTTPFileCollection
HTTPPostedFile
HTTPRequest
HTTPRequestClient
HTTPRequestHeader
HTTPResponse
HTTPResponseHeader
HTTPServer
HTTPServlet
IHTTPServerEventListener
KeysCollection
NameValueCollection
Uri
WebServiceInvoke
WebServiceInvokeArg
WebServiceInvokeArgs
SoapClient 
等,其中HTTPRequestClient,完全兼容微软XMLHttpRequest,这个可是Ajax的核心呀,当然了,我改进了同步调用的弊端。
另外的亮点,是基于此的WebService,如,一台服务器负责各客户端的登陆,注销,IP地址位192.168.1.2,另一个服务器提供图片的业务,如图片的下载现实和上传更新等。IP地址为 192.168.1.3,两个地方分别建立和注册两个WebService,如下:
  服务端搭建WebServcie很简单:

VB code
   Call RegisterWebService(New Server,"Server")     '//192.168.1.2   Call RegisterWebService(New PicService,"PicService")     '//192.168.1.3      '//这样,WebService就被搭建了。


  关于Webservice Server 客户端登陆,代码如下:
VB code
   Dim oServer             As Object   Dim intRet              As Integer   Set oServer = NewSoapClient("http://192.168.1.2:80/", "Server")     intRet =oServer.Login(sUser,sPwd)   if intRet = 0 then     msgbox "登陆成功"   elseif intRet =1 then     msgbox "用户名不存在"   elseif intRet =2 then     msgbox "密码错误"      end if     '//仅示例用,具体逻辑可以自己定义。这样登陆的业务逻辑,就放到了      '//192.168.1.2 上执行,结果返回给客户端。根据同样的道理。您也可以写出      '//注销的代码。如果按照这样的逻辑,一个局域网聊天,或是文件共享的程序(飞鸽传书?),不用费多少代码,就可以实现了。


  关于Webservice PicService 客户端,代码如下:
VB code
   Dim oPicService         As Object   Dim oPic                As StdPicture   Dim bSucceed            As Boolean   Set oPicService= NewSoapClient("http://192.168.1.3:80/", "PicService")     set oPic =oPicService.GetPic("MyName")          '//检索并返回 MyName 的照片   Set Me.Picture=oPic   bSucceed  = oPicService.UpLoad("MyName","C:\1.bmp")         '//将 "C:\1.bmp" 图片上传到服务器,并覆盖 MyName 位置,      '//并且返回操作的结果。

   
  总结我的WebService有以下几个特点:
  1、纯绿色,部署WebService的一端不需要部署IIS。
  2、提供 WebService 服务的就是任意一个普通类,也可以是一个窗口,在服务端实例化后,调用RegisterWebService 注册即可。
  3、参数和返回值支持大部分数据类型(除了结构,VB下的结构,是个很变态的东西。),对象支持实现了Persistable接口的类(ActiveX Dll 工程下,类的属性的最后一个),比如StdPicture,Recordset等等。
  4、全程可捕捉错误,包括客户端捕捉服务器执行的错误,比如 调用oPicService.UpLoad,真正执行的是在服务端的 PicService类的UpLoad函数,如果 在执行UpLoad函数发生了错误,可以返回给客户端,并触发。
  5、WebService 的调用,可以设这TimeOut,也可以异步调用,这个在VB6下调用过WebService的人知道,如果远程服务器连接不上,整个连接过程是进程挂起的。
  6、服务器接收到WebService 调用,根据自己的业务负荷,可以分流给其他服务器。比如 192.168.1.3 上的图片服务比较忙碌,可以Redirect给其他机器。
  7、完全为VB6设计,跟Vb6会结合更紧密。
   
 

[解决办法]
接分来了
[解决办法]
嘛意思
[解决办法]
支持。
LZ所说的webservice是自己定义的标准还是支持SOAP的?
[解决办法]
不错,顶!
------解决方案--------------------


帮顶
[解决办法]
顶了。
[解决办法]
支一下啊,有创意的帖子多发点

---------------------------------------- 
人脑潜能开发,潜能开发音乐下载 潜能21网www.qn21.com

热点排行