美章网 资料文库 PB的C/S模式数据通信软件的开发范文

PB的C/S模式数据通信软件的开发范文

本站小编为你精心准备了PB的C/S模式数据通信软件的开发参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

PB的C/S模式数据通信软件的开发

1客户端服务器端网络通信实现

目标主机上程序代码如下://定义全局变量winsockgs_wssocketdgramgs_udpintgi_port//定义目标主机端口号//在open事件中创建winsock和数据报式套接口对象gs_ws=createwinsockgs_udp=createsocketdgram//通知套接字端口有请求事件发生gs_udp.wsaasyncselect(handle(parent),1025,gs_ws.fd_read+gs_ws.fd_write)//欲接收读、写准备好通知//绑定端口gs_udp.bind(0,gi_port)//绑定目标主机端口号在调用wsaasyncselect后,窗口需处理消息,此处需为窗口定义一个新的自定义事件,事件的ID为pbm_custom02。该事件有两个变量,wparam与lparam,变量类型分别为un-signedlong与long。//接收源主机发来的消息并发送消息至源主机,uPeerClient,i//ClientPort分别为源主机的IP地址与端口号gs_udp.recvfrom(ls_data,1024,0,uPeerClient,iClientPort)//接//收消息,消息存于ls_data变量中接收到消息后,程序可进行//其他操作处理,向源主机发送消息gs_udp.sendto(ls_data_return,len(string(ls_data_return)),0,u-PeerClient,iClientPort)//使用完成后,在close事件中关闭socket,释放资源gs_udp.closesocket()destroygs_udpdestroygs_ws源主机上程序代码如下://定义全局变量winsockgs_wssocketdgramgs_udpintgs_ip,gi_port//定义目标主机的IP号与端口号//在open事件中创建winsock和数据报式套接口对象gs_ws=createwinsockgs_udp=createsocketdgram//通知套接字端口有请求事件发生gs_udp.wsaasyncselect(handle(parent),1025,gs_ws.fd_read+gs_ws.fd_write)//欲接收读、写准备好通知//在发送按钮下写发送程序代码gs_udp.sendto(ls_data,len(string(ls_data)),0,gs_ws.Inet_addr(gs_ip),gi_port)//ls_data为发送的消息,其中Inet_addr将//IPv4格式转换为无符号的长整型函数,实现IP地址的转换在调用wsaasyncselect后,窗口需处理消息,此处需为窗口定义一个新的自定义事件,事件的ID为pbm_custom02。在该事件中,有接收目标主机消息程序代码。gs_udp.recvfrom(ls_data_return,1024,0,uPeerClient,iClient-Port)//接收目标主机发送的消息//使用完成后,在close事件中关闭socket,释放资源gs_udp.closesocket()destroygs_udpdestroygs_ws

2主备服务器的数据库同步备份

在软件设计时,需要在任意时刻对数据库进行备份和还原,其备份文件保存在管理员机端的相应文件夹下。由于这种备份功能是由管理员的意愿进行备份,故每次备份时都将覆盖上一次的备份文件,以保留管理员所希望的最新的备份文件。但是人工备份方式也有一些缺陷,它具有不可连续性操作,备份时间点不确定等缺点,而且当主服务器上的数据库遭到损坏、系统故障或服务器硬件故障等原因主服务器无法启动时,也显得束手无策,为此设计了一种基于PB的主备服务器的同时定时备份软件。功能示意图如图2所示。该软件工作时,将主服务器中的数据库阶段性的以备份文件(*.dat)的形式保存起来,当出现数据无法使用或数据保存错误的情况时,可通过告知管理员,在主服务器上手动进行还原,将数据还原到自己所需要的时间点;或是通过服务器上的管理员端软件对数据库进行还原。当主服务器关机时,管理员通过手动开启备用服务器,仍可向用户提供最后一次还原的时间点的数据。

2.1定时开机与关机功能(1)保证硬件连接:用网线将笔记本网口与备用服务器的管理口(SystemMGMT)相连。(2)设定笔记本与备用服务器的IP地址和子网掩码,保证两个地址在同一个网段。(3)在笔记本上打开IE浏览器(或其他浏览器),在网址中输入:192.168.70.125(默认IMM的IP地址)(4)在弹出的页面中,分别输入用户名:USERID,密码:PASSW0RD(此处0为数字零)。(5)登录后,点击continue,选择tasks下的Power/Restart,再选择ScheduleDaily/WeeklyPowerandRestartActions,在这里设定时间并Save(此处选择每天定时开机、关机)。注意:必须保证IMM时间与服务器时间相同,可在IMMControl下的SystemSettings中设置。

2.2主服务器软件主服务器上开机时自动运行一个小程序,完成定时备份的功能。程序启动后,一直监测备用服务器的共享文件夹定时备份是否存在。若不存在,则将timebackup.ini文件中的backup置0;若存在则判断timebackup.ini文件中的backup是否为0,若为0则为是第一次检测到,随后将backup置1,并备份主服务器中的test数据库,将此文件拷贝至主服务器定时备份文件存放地址下(创建以备份时间命名的文件夹),以完成主服务器的定时备份;同时将此文件拷贝至备用服务器的共享文件夹下,并通过SQL语句将该备份还原至备用服务器,以完成备用服务器与主服务器的数据库数据同步。

2.3备用服务器软件同理,在备用服务器上也同时运行一个小程序,其功能是检测备用服务器自身的共享文件夹中是否存在数据库备份文件(.dat),此备份文件为主服务器数据库最近一个时间点的备份文件。若存在则将该备份文件拷贝至备用服务器文件夹下(创建以备份时间命名的文件夹)。这样,只要管理员打开备用服务器,键入密码进入桌面,即可将主服务器数据库最新的备份文件拷贝一份至备用服务器存储起来,对数据库的数据又加了一层保护。由于服务器程序是以备用服务器的共享文件夹是否存在为基础的,与时间无关,因此这两套程序不受定时开机、关机的时间的约束,即可以随意更改定时开机、关机的时间,以满足工作的需要。又因与时间无关,当管理员在任意时间点打开备用服务器时,这两套程序仍然正常运行,即也会设立一个新的时间点进行备份(此操作不影响当天的定时备份环节),这样也间接地完成了不定时备份功能。

3结语

在当前数据信息高速发展的环境下,局域网内的数据传输已经成为用户进行日常业务必不可少的保障。PowerBuilder与SQLServer的通信技术经过不断发展,技术上已非常成熟,为局域网数据通信软件的实现奠定了技术基础。

作者:朱慧奇格奇温渤婴单位:中国农业大学信息与电气工程学院清华大学土木水利学院