客户端及时刷新(200分)

  • 主题发起人 主题发起人 thgerman
  • 开始时间 开始时间
你在服务端写个服务,检视你的数据库,有变化的话,向你的的客户端发消息,Socket就行了。
 
to:NoSwing能说得详细一点吗?或介绍一些书或资料
 
我想可以这样,你写一个中间层(服务程序),所有的更新操作都通过这里,或者单纯的向你的服务程序发消息告诉它某一客户端更新了数据,在由这个程序向所有的客户发通知,然客户端自己更新数据就行了。
端口通讯没有什么难题吧。
 
to:NoSwing端口通讯我不会,能介绍点资料给我吗?
会了端口通讯我是不是就能从服务器端向客户端发消息了?
 
http://delphi.mychangshu.com/dispdoc.asp?id=199
这有一source code, 我用dcom实现了自动刷新。
 
这种东西遍地都是。我没做过,找本书好了。
 
我也急需这方面的,问题:我只具有访问远程数据库的权限,我编写的客户端软件怎杨才能
实时更新数据。
 
我想最好还是在客户端放过SOCKET控件,只有数据更新了来个网络广播或者发个信息过去,
客户端收到之后就更新数据,这样最好,比什么定时刷新要好一些.而要实现这个功能,比做
一个最简单的聊天室都还简单,两端一个放ClientSocket,一个放ServerSocket,你只要知道
怎么使用Socket控件,就行了.
 
小弟正好不知道Socket的用法,能介绍什么书上有讲或资料什么的
谢谢了
 
可以在当客户端空闲时进行更新!
TApplicaionEvents有个OnIdle的事件,可以在当空闲达到一定的时间时,自动到
服务器读取数据!不需要其它的设置就可以搞定!
 
datasetprovider有一个实时刷新的选项去看看吧,在OPTION属性集里面。
 
谢谢我去试试
 
对客户端自动更新功能,也是可以的,不过考虑到效率,不要让客户端一发现需要更新就立刻
去操作数据库。假设有100个客户端,估计每次更新操作的时间为5000ms,那么,可以先
i := random(100) ;
sleep(i*5000) ;
//做更新
这样在一定程度上能缓解网络和数据库服务器的压力。
 
to:darkiss那怎么样才能实现实时刷新呢???
 
用Socket,当客户端作一个操作时,发送一个消息(自己定义)到Server,
Server根据消息把相应的更新传送到需要更新的Clinic
 
将datasetprovider 的options下的popropogatechanges=true;poautorefresh=true即可实现
服务器的所有变化自动返回到clientdataset中。
 
在Server建立一個服務程序﹐有數據更新時向Client端發達信息
接到信息后自動刷新﹐可不要定時刷新哦﹐太耗資源了﹗﹗
 
在服务端建立一个触发器,当有数据更新的时候就调用外部进程给客户端
通过发送消息,客户端接收后可根据要求重新向服务器请求新的数据。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=744091
 
对于客户端及时刷新,小弟的做法是将客户端的一个接口指针在登录的时候传给服务器,服务器
维护所有登录客户的接口(在服务器和客户端都有一个专门检测服务器和客户是否还在线的线程)
如果有新的消息无论是全体广播或者针对某个用户的都通过调用客户传过来的指针进行操作。
因为不熟悉SOCKET,所以采用了DCOM CALLBACK的方法,现在程序运行的时间不长,毛病好象没有显露出来,
这种做法不知道有没有弊端?
 
to:步步高,nsj这个属性怎么用?我试了没有效果!!!
 
后退
顶部