请教:如何用SocketConnection控件做三层结构?(300分)

  • 主题发起人 主题发起人 clarion
  • 开始时间 开始时间
C

clarion

Unregistered / Unconfirmed
GUEST, unregistred user!
我试过用DCOM做三层结构,DCOM的配置非常烦。中间层和客户端都在同一台计算机运行时一切正常,
但分在两台计算机运行,则在客户端不是显示“拒绝访问”就是“RPC服务未启动”之类的
错误,而且用DCOMCNFG配置了半天也调不通。听说用SocketConnection控件搞的三层结构没有这么
复杂,而且在互联网中进行通讯要比DCOM好,所以想试试。不知哪位大侠肯赐教?
务必详细一点,有例子最好。分数不够可以再加。感谢先
 
SocketConnection控件用法很简单,给他赋值一个主机IP就够了
安全起见写一个IP加密程序,再写一个服务器IP检查工具可以动态赋值IP。
配置socketserver各个端口的三个参数:端口,线程数量,超时连接。
如果数据很重要再加密数据(李维书有介绍)。
 
中间层和客户端都使用SocketConnection控件来配套吗?
 
中间层(应有服务器)放ADOConnection1用来联接数据库服务器,DataSetProvider1是与客户
端数据接口,与ADOQuery1相联。
客户端放SocketConnection1,给它赋值一个主机名或IP,并且要与中间层(应有服务器)
相联,是通它的severnam属性来实现的。再放一个ClientDataSet1数据集,把它的
removteserver属性与SocketConnection1相联,provideername与DataSetProvider1相联这样
就好了,不过你还可以放其它构件
 
用SocketConnection方便,我门公司以前也用dcom
用法只是把dcomconnection换成SocketConnection,应用服务器锻运行scktsrvr.exe
scktsrvr.exe是delphi自己带的
SocketConnection用tcp/ip连接的所以写上应用服务器的地址就行
 
但是,如果中间层与客户端是通过互联网进行通讯,中间层有合法的IP地址,但客户端是
局域网中通过Proxy访问互联网的计算机,这样子两者之间无法成功通讯啊!而且我想除了
传送标准的SQL语名以外,还想由中间层向客户端返回一些控制信息(应用系统需要用的
一些文本信息),该怎么做啊?
 
但是要注意啊!DCOM虽然配置麻烦,但安全性好!我们原来用SocketConnection的,还想
改成DCOM的呢。
 
SocketConnection的配置真是很简单的。就象楼上说的。但安全性不好!
 
看看李维的书,都有答案的。
 
我需要在互联网上通讯,而且客户端有可能会一次向中间层新增多条记录,比如:客户端
需要将本地数据库中的100条记录,通过中间层汇总到服务器的数据中,难道只能调用100
次Insert语句来一条条地增加记录吗?有没有更好的办法啊,不然效率太低了。
 
没有人肯指教??
 
两者互有利弊,看你主要需要什么了。
socketconnect可以方便的配置以通过防火墙,DCOM可没这么好命。
socketconnect只要ping得通,一般都联得通。DCOM,你慢慢调先,要是遇到WIN95啊什么
的机子,得先准备几瓶风油清,随时准备急救。
scktsrvr.exe有运行不稳的情况,运行时间一长,机器得重启,以收回漏泄资源。
DCOM本身就具有多级高安全性,socketconnect,你还得用它的intercept接口来实现重要
消息的传递。
个人感觉,socketconnect联接的速度好象比不上DCOM,DCOM除了第一次很慢之外,
以后联接相当快,但socketconnect每次联接都很慢。
DCOM联接好象不象socketconnect联接这样反应快,client端退出后,很快,appserver就
能收到退出的消息,但DCOM就要慢一些,(我不知道原因)
 
怎么指教?
简单得不得了,没有什么问题啊?
但它有一个缺点:没有代理服务器设置。
在改一种吧
 
我需要通过互联网从客户端向服务器端提交大量的记录,如果从效率上考虑,是采用多次
执行ClientDataSet1.CommandText中的标准SQL语句 Insert into ?还是调用ClientDataSet1.inser、
ClientDataSet1.Post过程最后执行ClientDataSet1.ApplyUpdates(0)?
 
批量更新数据时,听说可以自定义一些方法,直接调用方法。你试试行不?
 

Similar threads

后退
顶部