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)))

發佈了29 篇原創文章 · 獲贊 7 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章