怎么自动通过程序判断局域网络是通的,谢谢大家

terryxin 2004-09-18 11:21:18
怎么自动通过程序判断局域网络是通的,用什么方法比较好,如果网络是通的话就执行拷贝文件的命令,不通的话给出提示.谢谢大家
...全文
290 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
landlordh 2004-10-26
  • 打赏
  • 举报
回复
ping 不是最好的辦法

如果我防火牆屏蔽過濾了PING呢

之前我有看過一種方式很不錯,不過現在不記得
earlsen 2004-10-26
  • 打赏
  • 举报
回复
此示例确定指定的 Web 站点是否响应。

示例
Try
Dim siteUri As New System.Uri("http://www.microsoft.com")
Dim webRequest As System.Net.WebRequest = _
System.Net.WebRequest.Create(siteUri)
webRequest.Proxy = New System.Net.WebProxy("YourProxySetting")
Dim webResponse As System.Net.WebResponse = webRequest.GetResponse()
Catch ex As Exception
' The Web request failed.
End Try

拷贝方式
Dim Source As String = "C:\Test.csv"
Dim Destination As String = "d:\ee.csv"
System.IO.File.Copy(Source, Destination, True)
jackyped 2004-10-26
  • 打赏
  • 举报
回复
楼上的是个好办法
jkflyfox 2004-10-26
  • 打赏
  • 举报
回复
ping127.0.0.1不大好,我记得是拔掉网线也ping得通。
先取得网关,然后ping网关比较好吧。
Uncommon 2004-10-25
  • 打赏
  • 举报
回复
Socket类的Connected属性往往不能精确的判断出网络是否连接,
下面这段代码可以解决这个问题

/// <summary>
/// 是否已经连接
/// </summary>
public virtual bool Connected
{
get
{
try
{
//检查socket的状态是否可读
if(m_socket.Connected && m_socket.Poll(0, SelectMode.SelectRead))
{
byte[] aByte = new byte[1];
//因为TCP/IP协议无法精确的判断网络是否可用
//试读一个字符,Peek参数指定读取的字符不会从缓冲区中移除
//假如可读则表示连接可用
if(m_socket.Receive(aByte, 0, 1, SocketFlags.Peek) != 0)
return true;
Close("Disconnected.");
return false;
}
}
catch(SocketException e)
{
OnException(e);
}
return m_socket.Connected;
}
}
捏造的信仰 2004-10-25
  • 打赏
  • 举报
回复
不要使用ping 127.0.0.1,因为这个命令的运行并没有经过网卡。
建议使用Dns.GetHostByName(Dns.GetHostName).AddressList(0)看看是否触发异常。
youlongzaitian 2004-10-20
  • 打赏
  • 举报
回复
PING是最可靠的切简单的办法吧!学习···
wenww 2004-10-20
  • 打赏
  • 举报
回复
ping
Night_Elf 2004-10-20
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3470/3470260.xml?temp=.1192896
wangsaokui(无间道III(终极无间)) 的Process.Start("ping 127.0.0.1 > c:\1.txt")这一句我原来试过,不知什么原因,老出错,也可能是我的命名空间没导进吧!
wangsaokui 2004-09-29
  • 打赏
  • 举报
回复
C#中实现ping
http://dotnet.aspx.cc/ShowDetail.aspx?id=VXMGWMHF-OJCC-4RBD-KH6X-RIJQLD17QMFW

另外一种方法,可以将ping后的结果保存到文件,然后判断文本文件中是否包含
Lost = 0,或者是否有Reply

Process.Start("ping 127.0.0.1 > c:\1.txt");


Pinging 127.0.0.1 with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128

Ping statistics for 127.0.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

上面这段结果将保存到文本中,如何判断其中是否包含某个字符我想不必写了吧。
cngis 2004-09-29
  • 打赏
  • 举报
回复
最笨的办法,ping一把。
taofirst 2004-09-19
  • 打赏
  • 举报
回复
http://dev.csdn.net/develop/article/25/25900.shtm
terryxin 2004-09-19
  • 打赏
  • 举报
回复
up
ekinwt 2004-09-18
  • 打赏
  • 举报
回复
计算机网络不是有学过回路测试吗?往127.0.0.0发消息看能不能返回数据包..

要测试两台机通不通推荐用Ping.

用winsock可以看看能不能连上也是一个好方法...
terryxin 2004-09-18
  • 打赏
  • 举报
回复
有没有详细一点的啊
NULLvalue 2004-09-18
  • 打赏
  • 举报
回复
winsock
tendotnet 2004-09-18
  • 打赏
  • 举报
回复
ping吧。
realljx 2004-09-18
  • 打赏
  • 举报
回复
直接执行拷贝不就完了? 不通会抛出异常的。
ny_nicholas 2004-09-18
  • 打赏
  • 举报
回复
幫頂

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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