关于PB的TCP/IP编程
http://hi.baidu.com/pwzh/blog/item/f690c235f116f31391ef39db.html
现在流行多层模型代替C/S模型,通过PB中的代理对象就可以实现三层模型结构
系统. CLIENT->APPLICATION SERVER->后端数据库.
企业商业规集中放入APPLICATION SERVER中不但可以减少维护的复杂性,还有利
于统一商业规则变更,减少了以往的C/S系统商业规则变更后系统升级的麻烦.只要
设计好优良的APPLICATION SERVER接口,基本上商业规则变更并不需要改变客户端
,
这也就是为什么人们提出多层模型的原因.
下面是我采用WINSOCK驱动程序对PB的TCP/IP的编程测试程序,欢迎大家共同
讨论.
(1).服务器端
1).W_MAIN窗口OPEN事件脚本
transport li_port
li_port=create transport
li_port.application="8888" //TCP端口号
li_port.location="192.168.0.1" //IP地址
li_port.driver="winsock" //使用WINSOCK驱动程序
li_port.listen()
if li_port.errcode<>0 then
messagebox("服务器JmServer","启动错误!!!")
messagebox("err",li_port.errtext)
end if
2).APP用户对象
APP用户对象函数
STRING HELLO()
{ RETURN "OK" }
3).使用PROJECT生成代理对象APP,放入PROXY.PBL中
(2).客户端
1).把PROXY.PBL加入应用库路径中
2).测试按钮CLICKED事件脚本
connection my_connection
app my_server1
my_connection=create connection
my_server1=create app
my_connection.application="8888" //TCP端口号
my_connection.location="192.168.0.1" //IP地址
my_connection.trace="log=d:/test_pb/err.log,objectcalls=1,
objectlife=1"
my_connection.driver="winsock" //使用WINSOCK驱动程序
if my_connection.connecttoserver( )<>0 then
messagebox("Client","ErrorCode="+string(my_connection.errcode)+&
"~r~nErrorText="+my_connection.errtext)
halt close
end if
my_connection.createinstance(my_server1)
messagebox("result",my_server1.hello("")) //调用服务器端用户对象
APP
//的HELLO函数
PB中的三层模型基本就是使用这种方法,生成代理代理对象,在客户端通过代
理对象调用服务器端的应用服务器中的函数,服务器端的应用服务器就是中间层,从
而实现了PB的三层模型编程.PB的代理对象的好处就是封装了SOCKET编程的复杂性,
简洁的开发PB的多层模型系统.