PowerBuilder实例学习分布式开发

应该开发两个应用,一个是做服务器的,一个是做客户端的。首先介绍服务器的程序。
服务器程序通常封装业务逻辑,没有界面处理,供客户端调用。比如,我们创建一个加法计算的服务器。操作步骤如下:
1、为Application对象的ConnectionBegin编写脚本。当客户端程序尝试联结服务器时触发该事件。所以,该事件应该对用户合法性进行检查,如果是合法用户则返回联结成功标志。脚本如下:
if userid = 'guobaoli' then return ConnectPrivilege!
2、在Application事件中打开服务器主窗口。
Open(w_main)
3、在w_main窗口的Open事件中设置TransPort的必要参数。所有和客户端的处理都是通过该对象进行的。所以,首先需要定义一个TransPort类型的全局变量g_TransPort。然后编写如下脚本:
integer li_rtn

g_transport = Create TransPort
g_transport.Driver = 'WinSock' //驱动程序
g_transport.Application = '5555' //端口号
li_rtn = g_TransPort.Listen() //监听客户联结

if li_rtn <> 0 then halt close
4、这是最重要的一个步骤,开发业务逻辑,必须是非可视的用户对象。我们只只编写一个函数of_add即可。
/*--------------------------------------------------------------------
* 函数定义:integer of_add(integer ai_1,integer ai_2)
* 函数作用:求和。
* 编写日期:2004.7.11
* 编 写 人:达通兴电脑科技 郭宝利
*-------------------------------------------------------------------*/
return ai_1 + ai_2
5、业务逻辑开发完成后,为了保证客户端能够调用到这些用户对象中的函数,还需要生成客户端的代理。客户端通过这些代理,就可以知道哪些函数在服务器端了。所以,我们这个步骤需要创建客户端代理。操作步骤如下:
1)关闭PB中所有已经打开的画板;
2)选择窗口菜单file->new->project->proxy library
3)选择工具条中的select objects,选择我们服务器端程序所在的pbl,选中用户对象;
4)选择工具条中的Properties,选择output library为客户端的pbl(如果还没有创建,可以先创建客户端pbl);
5)运行,即可生成客户端代理。
至此,服务器端程序的处理就结束了。下面编写客户端的程序。首先在Application对象的Open事件中打开主窗口:
Open(w_main)
然后,我们设计主窗口。放置一个命令按钮,text属性改为'add'即可。在w_main窗口的Open事件中编写如下脚本:
integer li_rc

g_connection = create connection
g_connection.Driver = "WinSock"
g_connection.Location = '192.168.21.88' //取值
g_connection.Application = '5555'
g_connection.UserId = 'guobaoli'
li_rc = g_connection.ConnectToServer()
if li_rc <> 0 then halt close;
//首先声明全局变量:nvo_add gvo_add
if g_connection.CreateInstance(gvo_add,'nvo_add')
if li_rc <> 0 then
MessageBox ("客户端", "远程实例对象创建失败!" )
halt close
end if
至此,必要的准备工作都结束了,接下来我们就要验证我们的工作成果了:编写一个调用服务器端函数的小程序。在命令按钮‘add’的Clicked上编写如下脚本:
MessageBox('',string(gvo_add.of_add(32,5)))

你可能感兴趣的:(PowerBuilder)