服务如何主动的断开已连接的客户?

intern9901 2007-04-11 08:52:27
通过类似如下的代码发布了一个对象(Me):
mChannel = New TcpChannel(8080)
ChannelServices.RegisterChannel(mChannel, False)
mRef = RemotingServices.Marshal(Me, mURI)

随后有N个客户端通过GetObject或其他的远程连接方式连接到了
该对象。

请问,如何能够让服务端主动的断开其中的某一个客户端,使其不能继续访问服务????

RemotingServices.Disconnect(Me)可以断开所有的客户端连接,却不能只断开其中的某一个。
...全文
302 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
哈哈007哈 2007-04-15
  • 打赏
  • 举报
回复
可以通过服务器来限制给客户端的服务。
比如限制网卡号,ip等,用户名等

无状态的对象服务器是不无法断开的,因为激活是客户端的事情。
intern9901 2007-04-15
  • 打赏
  • 举报
回复
同志们,帮忙阿!
破碎的脸 2007-04-13
  • 打赏
  • 举报
回复
通过IP地址能办到吗?
intern9901 2007-04-12
  • 打赏
  • 举报
回复
采用客户端激活模式或服务器激活模式好像没关系,因为我发布的是一个单一的实例。如果是SingleCall模式就容易多了,直接用Disconnect断开客户激活的实例就行了。

同志们,帮忙阿!有变通的方法也行。
ristona 2007-04-11
  • 打赏
  • 举报
回复
采用客户端激活模式,然后将客户端激活的对象装载在一个集合中.当需要注销时,将这个远程对象清空就行了.
greennetboy 2007-04-11
  • 打赏
  • 举报
回复
sosket.ShutDown
wzd24 2007-04-11
  • 打赏
  • 举报
回复
应该不行,看看Remoting的机制就知道了!
在客户端没有调用Remoting的时候,服务端和客户端的连接是断开的。在调用Remoting的时候才会建立一个短连接,调用完成后又会断开。只有调用比较频繁的时候才会将连接缓存。
这样的话也就不存在断开客户端连接的可能性了,因为它们本来就是断开的!
ufoteam 2007-04-11
  • 打赏
  • 举报
回复
ChannelServices.UnregisterChannel(mChannel);
wshuangminlg 2007-04-11
  • 打赏
  • 举报
回复
帮楼主顶~!~
ufoteam 2007-04-11
  • 打赏
  • 举报
回复
帮你找找看
wzd24 2007-04-11
  • 打赏
  • 举报
回复
没试过,好像不行!

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧