ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:386.01KB ,
资源ID:231784      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/231784.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(RemObject服务端配置程序编写.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

RemObject服务端配置程序编写.docx

1、RemObject认证服务端程序编写步骤1 功能说明:用remobject编写服务端,通rodl暴露的方法给客户调用,但这些方法需要通过认证才能使用。服务端应提供两种服务:1、 登陆服务提供登陆认证方法2、 应用服务用户编写的具体方法,但需要在登陆服务认证通过的情况下才能使用2 工作示意图3 服务端编写步骤3.1 在硬盘中新建一个文件夹d:testServer3.2 启动delphi3.3 点击菜单filenewother3.4 选择remObjects SDK页面 3.5 再选择 VCL图标, 然后点击OK按钮进入一步在Project Folder:中录入d:testServer点击 adv

2、anced Project Options.按钮,进入高级选项设置然后Server Class选择成TROSuperTCPServer,也可选择其它的Message Class选择TROBinMessag表示采用二进制传输入方式,或者选择其它点击确定返回3.6 再点击OK按钮,这时向导处理完成啦。3.7 点击菜单view project manage3.8 双击testProject.exe设置服务端为默认项目3.9 打开serverForm表单在界面上加入一个控件TROInMemorySessionManager并命名为ROSessionManager在界面上加入一个控件TMemo并命名为m

3、emo。3.10 点击菜单 RemObjects SDKEdit Service Library,进行应用服务器编辑1)将服务名称改为AppService,并且增加一个方法getSessionID2)增加一个服务LogServices, 增加两个方法login(user,password:widestring):booleanlogout(sessionID:widestring):3)点击菜单CodeGendelphiinterface 生成接口文件代码,然后按保存,选择路径为d:testServer4)点击菜单CodeGendelphiImplementationAppService 生成

4、应用服务实现文件代码,然后按保存,选择路径为d:testServer,(注意:如果你已经在实现代码中编写了代码就不要保存,否则你编写的代码会被覆盖,如果你要加方法,可以用delphi打开AppService_Impl单元的interface部份声明方法(例如: function GetSessionID: Widestring;),然后按ctrl+shift+C产生实现代码,然后编写)5)点击菜单CodeGendelphiImplementationLogService 生成登陆服务实现文件代码,然后按保存,选择路径为d:testServer6)点击菜单CodeGendelphiInvoker

5、 生成服务端调用代码,然后按保存,选择路径为d:testServer。3.11 关闭服务器调设置工具返回到delphi,然后在delphi界面按ctrl+F9,进入下面界面选择第二项按OK选择第二项按OK,到此项目初步完成,并且可以编译运行了3.12 保存项目所有文件。接下来是非常重要的设置部分啦。3.13 接口代码编写及相关设置(重点)3.13.1 设置主窗体serverform代码1) 打开主窗口文件FserverForm2) 引用单元SyncObjs3) 定义全局变量 CriticalSection: TCriticalSection; icount: integer 有效实例数4) 编

6、写create方法procedure TServerForm.FormCreate(Sender: TObject);begin CriticalSection:= TCriticalSection.create; ROServer.Active := true;end;5) 增加方法procedure TServerForm.log(Astr: widestring);begin if CriticalSection = nil then exit; CriticalSection.Enter; try try if AStr = then Memo.Lines.Add() else Mem

7、o.Lines.Add(DateTimetoStr(Now) + : + Astr); except end; finally CriticalSection.Leave; end;end;6) 编写ROSessionManager控件的onSessionCreated方法与onSessionDeleted方法;3.13.2 编写接口实现单元文件LogService_Impl1) 引用单元implementation$R *.dfmuses Generated: NewLibrary_Invk, variants,fServerForm;2) 按F12切换到界面编辑窗口设置sessionMan

8、ager为 ServerForm.ROSessionManager3) 增加私有方法procedure TLogService.log(Astr: widestring);begin ServerForm.log(Astr);end;4) 编写login代码function TLogService.login(const userid: Widestring; const password: Widestring): Boolean;begin Log(User + UserID + is trying logon with password + Password + ); if (Sessi

9、on.ValuesLogin Null) then begin Log(User + Session.ValuesLogin + is already connected to session + GUIDToString(ClientID); Log(Login unsuccessful); Result := True; Exit; end; result := (UserID ) and (UserID = Password); / if Result then begin Session.ValuesLogin := UserId; Session.ValuesPassword :=

10、Password; Log(Login successful); end else begin Log(Invalid login!); DestroySession; / Wrong login! The session cannot be persisted end; Log();end;5) 编写logout代码procedure TLogService.logout(const SessionID: Widestring);var aUser: WideString;begin if Session.ValuesLogin Null then aUser := Session.Valu

11、esLogin else aUser := ; Log(User + aUser + has requested logout); Log(); DestroySession; / Removes the session from the SessionManagerend;3.13.3 编写接口实现单元文件AppService_Impl1) 引用单元implementation$R *.dfmuses Generated: NewLibrary_Invk, variants,fServerForm;2) 按F12切换到界面编辑窗口重要设置sessionManager为 ServerForm.

12、ROSessionManager设置RequiresSession为true; 说明:这个参数非常重要,表示应用服务不再产生新的实例,而是用客户robinmessage.clentID来查找服务端创建的session来使用。3) 编写应用函数function TAppService.Sum(const A: Integer; const B: Integer): Integer;begin Result:=a+b;end;function TAppService.GetServerTime: DateTime;begin Result:=now;end;function TAppService

13、.GetSessionID: Widestring;begin Result:=GUIDToString(Session.SessionID);end;保存所有文件,致此服务端已经编写完成。编译运行程序,在浏览器中输入 http:/localhost:8095/如果出现ROSC:Invalid connection string, 表示应用服务器编写成功。4 客户端调用步骤4.1 建立文件夹d:testClient4.2 新启动一个delphi4.3 在项目中引入文件D:testServer NewLibrary_Intf.pas4.4 增加客户端控件1) ROMessage: TROBinM

14、essage; 2) ROChannel: TROSuperTCPChannel;设置属性host 为 localhost /可以自己修改为服务端的ip设置端口为8095 /可以需要设定通讯端口3) logServer: TRORemoteService;设置 channel 为 ROChannel设置 Message 为 ROMessage设置serviceName 为 LogService4) appServer: TRORemoteService;设置 channel 为 ROChannel设置 Message 为 ROMessage设置serviceName 为 AppService5) 引用接口文件到项目中D:testServer NewLibrary_Intf.pas6) 在主窗口中引用NewLibrary_Intf.pas7) 定义全局变量 appsvr:IAppService;logsvr:ILogService;8) 客户端界面9) 代码单元unit tempa;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1