小弟刚刚接触Delphi开发分布式应用程序,但是总是在连接远程服务端发生问题,请各位高手指点迷津.
最初使用DCOM技术连接远程服务器,步骤如下:
1.建立一个Server工程 选择File/New/Other/Multiter/Remote Data Model 建立一个远程的数据模块.
2.在接下来的向导中[CoClass Name]设置成: [SvrTst],其他的参数不变.
3.在模块中加入[ADOConnection]/[ADOTable]/[DataSetProvider]
4.设置好它们三者的关系后,运行一次. 5.再建立一个Client程序
6.在Client的窗口上添加[DCOMConnection]/[ClientDataSet]/[DataSource]
7.将[DCOMConnection]的[ComputerName]属性置空,然后下拉[ServerName]列表找到刚刚注册的[Server]端.这时候[ServerGuid]属性会自动赋值.
8.将[ClientDataSet]的[RemoteServer]属性设成[DCOMConnection]然后把[ProviderName]属性设置成为[Server]端的[DataSetProvider]
9.把[DataSource]的[DataSet]属性设置成为[ClientDataSet1]
10.我又添加了一个[DBGrid]控件它的[DataSource]属性设置成为Client工程[DataSource1]
运行[Client]的时候[Server]端自动被唤醒,没有问题,数据可以从[Server]端获取.
基于以上的设置,我想把[Server]端拿到远程机器上,测试[Client]连接[Server]端的情况.
[Server]端拿到远程机器上后,我又运行了一下[Server]端.
在本地,我把[Client]上的[DCOMConnection1]的[ComputerName]属性设置成[Server]所在机器的网络ID,但是我把[DCOMConnection1]的[Connected]属性设置成[True]时候,提示我[RPC服务器不可用],但是当我把[Computer]Name]设置成自己就没有错误,另外,我把[ServerName]设置成[Server]端的IP地址则提示[类没有注册] 请各位高手指点一下,我还有什么地方没有设置或者什么地方设置错误?不胜感觉!
另: 两台机器的操作系统都是Win98 配置如下: Client->IP: 192.168.0.1
Clinet->Name: tht
Clinet->网络ID :438-1 Server->IP: 192.168.0.2
Clinet->Name: tht
Clinet->网络ID : 438-2
解决方案 »
- 要实现如下要求要怎样写代码?
- 字段可由用户变化的表,查询怎么做
- 关于线程的疑惑。尽管简单,可是我不太明白,希望大家指教。顶者有分!
- 大二啦,今天开始上C语言,听了老师讲得课,我倒快要不会C了.散分.
- odbc中的filedsn能否指向一个在INTERNET上的ACCESS数据库?
- 如何实现能伪造自己的IP地址发包?
- delphi 编译的问题
- 想调用一个dll文件,明明那个文件已经在这里了,但就是说找不到,怎么办?
- delphi設計報表大家一般用什麽控件
- 不知道错在那儿,实在是太菜了。
- 如何在DELPHI中得到SQL-SERVER当前的日期时间
- 程序员过了,爽,散分,另外感谢长期以来此论坛高手对我的照顾和帮助!谢谢各位!
应该就没问题了吗?
还有要注意端口
答:其实他们不是一个概念!
dcom是可以由远程客户端调用的com对象
com+是执行在微软com+环境中的com/dcom对象,因为com+环境而具有 object poolin,database pooling以及事务控制等等企业应用必备的元素。具体你可以看看李维的ado/mts/com+一书!