本站小編為你精心準(zhǔn)備了PB的C/S模式數(shù)據(jù)通信軟件的開發(fā)參考范文,愿這些范文能點(diǎn)燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。
1客戶端服務(wù)器端網(wǎng)絡(luò)通信實(shí)現(xiàn)
目標(biāo)主機(jī)上程序代碼如下://定義全局變量winsockgs_wssocketdgramgs_udpintgi_port//定義目標(biāo)主機(jī)端口號//在open事件中創(chuàng)建winsock和數(shù)據(jù)報式套接口對象gs_ws=createwinsockgs_udp=createsocketdgram//通知套接字端口有請求事件發(fā)生gs_udp.wsaasyncselect(handle(parent),1025,gs_ws.fd_read+gs_ws.fd_write)//欲接收讀、寫準(zhǔn)備好通知//綁定端口gs_udp.bind(0,gi_port)//綁定目標(biāo)主機(jī)端口號在調(diào)用wsaasyncselect后,窗口需處理消息,此處需為窗口定義一個新的自定義事件,事件的ID為pbm_custom02。該事件有兩個變量,wparam與lparam,變量類型分別為un-signedlong與long。//接收源主機(jī)發(fā)來的消息并發(fā)送消息至源主機(jī),uPeerClient,i//ClientPort分別為源主機(jī)的IP地址與端口號gs_udp.recvfrom(ls_data,1024,0,uPeerClient,iClientPort)//接//收消息,消息存于ls_data變量中接收到消息后,程序可進(jìn)行//其他操作處理,向源主機(jī)發(fā)送消息gs_udp.sendto(ls_data_return,len(string(ls_data_return)),0,u-PeerClient,iClientPort)//使用完成后,在close事件中關(guān)閉socket,釋放資源gs_udp.closesocket()destroygs_udpdestroygs_ws源主機(jī)上程序代碼如下://定義全局變量winsockgs_wssocketdgramgs_udpintgs_ip,gi_port//定義目標(biāo)主機(jī)的IP號與端口號//在open事件中創(chuàng)建winsock和數(shù)據(jù)報式套接口對象gs_ws=createwinsockgs_udp=createsocketdgram//通知套接字端口有請求事件發(fā)生gs_udp.wsaasyncselect(handle(parent),1025,gs_ws.fd_read+gs_ws.fd_write)//欲接收讀、寫準(zhǔn)備好通知//在發(fā)送按鈕下寫發(fā)送程序代碼gs_udp.sendto(ls_data,len(string(ls_data)),0,gs_ws.Inet_addr(gs_ip),gi_port)//ls_data為發(fā)送的消息,其中Inet_addr將//IPv4格式轉(zhuǎn)換為無符號的長整型函數(shù),實(shí)現(xiàn)IP地址的轉(zhuǎn)換在調(diào)用wsaasyncselect后,窗口需處理消息,此處需為窗口定義一個新的自定義事件,事件的ID為pbm_custom02。在該事件中,有接收目標(biāo)主機(jī)消息程序代碼。gs_udp.recvfrom(ls_data_return,1024,0,uPeerClient,iClient-Port)//接收目標(biāo)主機(jī)發(fā)送的消息//使用完成后,在close事件中關(guān)閉socket,釋放資源gs_udp.closesocket()destroygs_udpdestroygs_ws
2主備服務(wù)器的數(shù)據(jù)庫同步備份
在軟件設(shè)計時,需要在任意時刻對數(shù)據(jù)庫進(jìn)行備份和還原,其備份文件保存在管理員機(jī)端的相應(yīng)文件夾下。由于這種備份功能是由管理員的意愿進(jìn)行備份,故每次備份時都將覆蓋上一次的備份文件,以保留管理員所希望的最新的備份文件。但是人工備份方式也有一些缺陷,它具有不可連續(xù)性操作,備份時間點(diǎn)不確定等缺點(diǎn),而且當(dāng)主服務(wù)器上的數(shù)據(jù)庫遭到損壞、系統(tǒng)故障或服務(wù)器硬件故障等原因主服務(wù)器無法啟動時,也顯得束手無策,為此設(shè)計了一種基于PB的主備服務(wù)器的同時定時備份軟件。功能示意圖如圖2所示。該軟件工作時,將主服務(wù)器中的數(shù)據(jù)庫階段性的以備份文件(*.dat)的形式保存起來,當(dāng)出現(xiàn)數(shù)據(jù)無法使用或數(shù)據(jù)保存錯誤的情況時,可通過告知管理員,在主服務(wù)器上手動進(jìn)行還原,將數(shù)據(jù)還原到自己所需要的時間點(diǎn);或是通過服務(wù)器上的管理員端軟件對數(shù)據(jù)庫進(jìn)行還原。當(dāng)主服務(wù)器關(guān)機(jī)時,管理員通過手動開啟備用服務(wù)器,仍可向用戶提供最后一次還原的時間點(diǎn)的數(shù)據(jù)。
2.1定時開機(jī)與關(guān)機(jī)功能(1)保證硬件連接:用網(wǎng)線將筆記本網(wǎng)口與備用服務(wù)器的管理口(SystemMGMT)相連。(2)設(shè)定筆記本與備用服務(wù)器的IP地址和子網(wǎng)掩碼,保證兩個地址在同一個網(wǎng)段。(3)在筆記本上打開IE瀏覽器(或其他瀏覽器),在網(wǎng)址中輸入:192.168.70.125(默認(rèn)IMM的IP地址)(4)在彈出的頁面中,分別輸入用戶名:USERID,密碼:PASSW0RD(此處0為數(shù)字零)。(5)登錄后,點(diǎn)擊continue,選擇tasks下的Power/Restart,再選擇ScheduleDaily/WeeklyPowerandRestartActions,在這里設(shè)定時間并Save(此處選擇每天定時開機(jī)、關(guān)機(jī))。注意:必須保證IMM時間與服務(wù)器時間相同,可在IMMControl下的SystemSettings中設(shè)置。
2.2主服務(wù)器軟件主服務(wù)器上開機(jī)時自動運(yùn)行一個小程序,完成定時備份的功能。程序啟動后,一直監(jiān)測備用服務(wù)器的共享文件夾定時備份是否存在。若不存在,則將timebackup.ini文件中的backup置0;若存在則判斷timebackup.ini文件中的backup是否為0,若為0則為是第一次檢測到,隨后將backup置1,并備份主服務(wù)器中的test數(shù)據(jù)庫,將此文件拷貝至主服務(wù)器定時備份文件存放地址下(創(chuàng)建以備份時間命名的文件夾),以完成主服務(wù)器的定時備份;同時將此文件拷貝至備用服務(wù)器的共享文件夾下,并通過SQL語句將該備份還原至備用服務(wù)器,以完成備用服務(wù)器與主服務(wù)器的數(shù)據(jù)庫數(shù)據(jù)同步。
2.3備用服務(wù)器軟件同理,在備用服務(wù)器上也同時運(yùn)行一個小程序,其功能是檢測備用服務(wù)器自身的共享文件夾中是否存在數(shù)據(jù)庫備份文件(.dat),此備份文件為主服務(wù)器數(shù)據(jù)庫最近一個時間點(diǎn)的備份文件。若存在則將該備份文件拷貝至備用服務(wù)器文件夾下(創(chuàng)建以備份時間命名的文件夾)。這樣,只要管理員打開備用服務(wù)器,鍵入密碼進(jìn)入桌面,即可將主服務(wù)器數(shù)據(jù)庫最新的備份文件拷貝一份至備用服務(wù)器存儲起來,對數(shù)據(jù)庫的數(shù)據(jù)又加了一層保護(hù)。由于服務(wù)器程序是以備用服務(wù)器的共享文件夾是否存在為基礎(chǔ)的,與時間無關(guān),因此這兩套程序不受定時開機(jī)、關(guān)機(jī)的時間的約束,即可以隨意更改定時開機(jī)、關(guān)機(jī)的時間,以滿足工作的需要。又因與時間無關(guān),當(dāng)管理員在任意時間點(diǎn)打開備用服務(wù)器時,這兩套程序仍然正常運(yùn)行,即也會設(shè)立一個新的時間點(diǎn)進(jìn)行備份(此操作不影響當(dāng)天的定時備份環(huán)節(jié)),這樣也間接地完成了不定時備份功能。
3結(jié)語
在當(dāng)前數(shù)據(jù)信息高速發(fā)展的環(huán)境下,局域網(wǎng)內(nèi)的數(shù)據(jù)傳輸已經(jīng)成為用戶進(jìn)行日常業(yè)務(wù)必不可少的保障。PowerBuilder與SQLServer的通信技術(shù)經(jīng)過不斷發(fā)展,技術(shù)上已非常成熟,為局域網(wǎng)數(shù)據(jù)通信軟件的實(shí)現(xiàn)奠定了技術(shù)基礎(chǔ)。
作者:朱慧奇格奇溫渤嬰單位:中國農(nóng)業(yè)大學(xué)信息與電氣工程學(xué)院清華大學(xué)土木水利學(xué)院