日期:2014-05-17  浏览次数:21295 次

C#如何判断一个远程连接是否存在???
如何用C#,如何判断Web Service 到远程实时数据库是否存在??

注意了,不是要用Socket建立连接,而是判断是否存在这个连接??

------解决方案--------------------
给webservice里添加一个测试方法判断下存在或不存在。调用加上try 远程断开也可知道(根据错误)。
------解决方案--------------------
连接、等待、如果超时说明不成功,在等待时间内返回说明成功。

没有办法可以确切知道连接是否存在。

原因很简单:(1)判断连接完成之后的瞬间网线被拔下,会出现报告成功却不成功的情况。(2)你没有办法判断在规定时间内得不到响应是因为连接不存在,还是连接存在但是没有来得及返回,或者连接上了,返回的数据丢失。
------解决方案--------------------
引用:
引用:
连接、等待、如果超时说明不成功,在等待时间内返回说明成功。

没有办法可以确切知道连接是否存在。

原因很简单:(1)判断连接完成之后的瞬间网线被拔下,会出现报告成功却不成功的情况。(2)你没有办法判断在规定时间内得不到响应是因为连接不存在,还是连接存在但是没有来得及返回,或者连接上了,返回的数据丢失。


排除掉拔网线这些特殊的情况,如何通过……

"拔网线"是一个生动的说法而已。事实上在验证返回,网络链路可能出现各种故障。

在通讯学里面有个著名的悖论,名字忘记了。说的是,两个通讯终端不可能依靠自身之间的通讯判断网络是否通畅。假设A发送一个消息给B,B收到以后给A确认A没有收到,或者B没有收到故没有给A确认,A是无法判断的。然后有人想,我们可以给确认加上确认的确认,但是确认的确认同样是不可靠的,这个过程可以无限循环下去。所以结论就是“两个通讯终端不可能依靠自身之间的通讯判断网络是否通畅”。
------解决方案--------------------
天回帖即可获得10分可用分!小
------解决方案--------------------
用wmi,查下msdn,里面有远程操作数据库的介绍
------解决方案--------------------
一般都是通过是否超时来判断,连接是不是存在,你觉得等的时间太长了,可以把超时时间改短一点。
------解决方案--------------------
帮顶  也想知道这个问题
------解决方案--------------------
引用:
引用:
引用:
引用:
连接、等待、如果超时说明不成功,在等待时间内返回说明成功。

没有办法可以确切知道连接是否存在。

原因很简单:(1)判断连接完成之后的瞬间网线被拔下,会出现报告成功却不成功的情况。(2)你没有办法判断在规定时间内得不到响应是因为连接不存在,还是连接存在但是没有来得及返……


就是我说的办法,试探连接。