Delphi中编制分布式多层应用系统服务资源浏览器.docVIP

Delphi中编制分布式多层应用系统服务资源浏览器.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Delphi中编制分布式多层应用系统服务资源浏览器.doc

Delphi中编制分布式多层应用系统服务资源浏览器 作者:陈立平 本文选自:赛迪网 2002年12月25日 本文详细介绍了在Delphi7中如何利用TSocketConnection控件设计开发一个通用的分布式多层应用系统客户端辅助开发工具——分布式多层应用系统服务资源浏览器。 在用Delphi开发分布式多层应用系统过程中,对于开发客户端程序的人员来说,了解分布式多层架构应用服务器所提供的资源(如:服务名称、提供者名称等)是一项经常遇到的工作。利用这些参数,客户端才能够正确地与服务器端程序连接并工作。 然而,在实际工作过程中,这些资源名称大都是以口头或E-Mail的方式,告知客户端开发人员;而一旦这些资源名称被改或者此类名称在一个开发服务器上较多时,就会发生程序不能与服务器正确连接的情况,或者造成服务名资源管理上的混乱。 另外,客户端开发人员只有在开发出客户端程序之后,才能够与服务器端程序进行连接并进行测试,没有前期通用的辅助工具与服务器进行交互,无形中增加了通信的开销,降低了开发工作的效率。 那么,有没有好的实现方法能够做到自动列出指定服务器上的开发资源名称,并能够与之进行动态地连接和交互呢?这就是笔者开发多层应用系统服务资源浏览器的原始初衷。 关键技术 对于分布式多层应用系统来说,客户端程序可通过DCOMConnection和SocketConnection控件与服务器端程序进行连接,这里我们使用SocketConnection进行连接工作。因为,SocketConnection控件不但可以通过IP地址来连接COM服务器,而且也可以主机名方式来连接COM服务器。 关于分布式多层应用系统服务资源浏览器实现的关键技术如下: 1.如何取得指定IP地址或主机名称上的服务资源名称列表 利用SocketConnection控件的GetServerList方法可取得服务器上的服务名称列表。详细信息见程序。 2.如何取得指定IP地址计算机,指定服务资源名称的提供者名称列表 利用SocketConnection的GetServer.AS_GetProviderNames来取得提供者名称列表。详细信息见程序。 通过以上方法,我们可以取得指定IP地址计算机上的服务名称列表和提供者名称列表,客户端就可以利用这些信息与服务器动态进行连接了。 程序具体实现 界面制作 在Delphi7中,制作如下图所示的界面。 说明:SocketConnection控件与服务器连接主要需要三个参数:Address(IP地址)或Host(主机名),端口号(默认是211,在服务器端可通过Borland Socket Server(scktsrvr.exe)程序设置监听的端口号),LoginPrompt(登录是否提示输入用户名和密码属性)。通过让用户输入的方式,可提高程序的灵活性。 2.程序实现中所用的公共函数和方法 //检验IP地址是否合法的函数 function IsLegalIp(Str: string): Boolean; var I, K, DotCnt : Integer; Num: string; Arr: Array [1..4] of string; begin Result := False; DotCnt := 0; //由0..9, .组成 For I := 1 to Length(Str) do begin if Not (Str[I] in [0..9, .]) then Exit else if Str[I] = . then inc(DotCnt); end; //点分隔符号数量应该=3 if DotCnt 3 then Exit; For K := 1 to 3 do begin I := Pos(., Str); Num := Copy(Str, 1, I - 1); Delete(Str, 1, I); Arr[K] := Num; end; Arr[4] := Str; try DotCnt := 0; For I := 1 to 4 do begin K := StrToInt(Arr[I]); //每字节的值应介于0~255之间 if ((K = 0) and (K = 255)) then Inc(DotCnt); end; //四个字节都满足0~255之间,则合法 if(DotCnt = 4) then Result := Tru

文档评论(0)

aiwendang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档