三个简单的MISDA问题,一:服务端如何获得当前客户端的列表极其信息,二:服务端如何捕捉客户端的断线的消息(包括客户端意外断线的错误)三:服务端如何对客户端下达

  • 主题发起人 主题发起人 xhyph
  • 开始时间 开始时间
X

xhyph

Unregistered / Unconfirmed
GUEST, unregistred user!
三个简单的MISDA问题,一:服务端如何获得当前客户端的列表极其信息,二:服务端如何捕捉客户端的断线的消息(包括客户端意外断线的错误)三:服务端如何对客户端下达命令(150分)<br />一:服务端如何获得当前客户端的列表极其信息,
有人说在数据库的sysprocess数据表中,我用的是sql2000,里面没有
二:服务端如何捕捉客户端的断线的消息(包括客户端意外断线的错误)
除了客户端在上线连接和正常下线的时候向服务端发送消息外,
我在服务端能否知道客户端断线的消息,包括客户端意外断线
三:服务端如何对客户端下达命令
当然,,,谁能告诉我服务端能否对某一个客户端发送命令那是最好
请附原码
谢谢
 
我的连接方式是
ADO+DCOM+SQL2000
 
第一.二個問題簡單,你可以從Delphi中的Demos/Midas/Login中找到答案.
第三個問題我覺得實際應用中沒有什麼意義.在Midas編程中,我也沒見過這方面的例子.
如果一定要,可以利用Socket編程解決.
 
一:服务端如何获得当前客户端的列表极其信息,
在datamodal的create中写入登陆客户端的信息
二:服务端如何捕捉客户端的断线的消息(包括客户端意外断线的错误)
服务器列表通过发消息给客户端刷新列表
三:服务端如何对客户端下达命令
这个可以通过socket网络编程
 
Demos/Midas/Login我看过,但是那个例子一定要你的DCOMConnection的LoginPrompt为true
时候才有效,但是我的客户端是没有界面的,它只收集数据传递给服务端,所以不能出现那个
叫你登陆的对话框.
不知道还有没有其他好的方法得知客户端断线的消息,包括客户端意外断线
我在学MIDSA ,如果MIDSA没有服务端向客户端发送命令的功能的话我也就作罢,
我只是想用尽MIDSA的任何功能
 
我试了,好像客户端异常推出,数据库连接不会断,还会一直占着。
 
发条消息给客户端,如果有放映说明没有断
 
:zhoujg, 你说发条消息给客户端,如果有放映说明没有断
不过,怎可能啊,服务器端多连接自动运行在线程中,根本就没法去管他的状态。
不要说客户断异常推出,就是客户段挂在那什么也不做,也只能让他占用一个连接。
 
客户登陆时可以发给服务器IP,到时两个两个机器通过网络通信
 
怎么可能呢?
我觉得我的这几个问题应该是基础问题,
既然是有服务端和客户端,
难道服务端连有几个客户端都不能知道?
双方传递写命令也不能做到?
也太低级了吧,连SOCKET也不如?
 
我的意思是在服务器写一个函数,可以返回IP,客户端登陆后定时通过IAppServer执行
这个远程方法,就相当于刷新了用户信息,到时就能知道哪些用户还在连接服务器了!
 
登陆倒不难,但是如何得知客户端离开呢?
特别是客户端意外的断线
有什么办法能够遍历所有的客户端,
 
问题是线程是服务器端自己产生的,根本没法控制
 
那么服务端有什么办法向客户端发送个命令?
如果客户端得到命令回复就可以判断为在线,否则就身亡了,
服务端向客户端发送个命令总不算过份吧
 
没有权威人士给我下个结论吗?
虽然我用Socket已经解决
但是我想还是用MIDAS本身的方法比较好
 
客户端间隔几秒(用Timer)去查询服务器端命令(可以放到数据库中)
不过这个方法不能做到立即执行,而且有点耗费资源
 
虽然没有人能够回答
但是我还是很感谢你们的关注
 
后退
顶部