我目前正在编写一个系统日志记录程序,它通过ftp发送不同的日志。 我面临的问题是我的程序应该不断检查在上传之前和期间是否正在使用连接,以便在另一个程序想要使用连接时停止发送数据包。
我实际上发现这个link帮助我衡量连接的速度,但我想我只能使用后者来发现某些东西是否已经被流式传输。 在System.Net.NetworkInformation上读取库条目后,检查各种网络统计信息和状态也不是问题。如前所述,我唯一的问题是检查是否有其他程序要发送内容。
正如你可以从这个问题中看出的那样,我对这个话题非常陌生并且是一个相当初级的程序员。我一直在阅读System.Net.NetworkInformation命名空间库,并为其提供各种类,方法和委托。我觉得我在正确的轨道上,但是没有到达那里。任何人都朝着正确的方向努力?
谢谢。
答案 0 :(得分:1)
我最终使用了System.Net.NetworkInformation库及其方法。
方法GetIsNetworkAvailable(),NetworkChange.NetworkAvailabilityChanged Eventhandler和TcpStatistics帮助我收集有关连接的信息。 MSDN和参考资料是使用已知的提及方法的一个很好的指南,我基本上使用这些例子稍作修改以满足我的需要。
msdn网络信息: http://msdn.microsoft.com/de-de/library/system.net.networkinformation.aspx
GetIsNetworkAvailable在连接上升或下降时非常直接返回布尔值。
Networkchange.NetworkAvailabilityChanged会在连接丢失或重新连接时触发事件。请参阅上面的msdn链接,了解它的用法的一个非常好用的例子。
TcpStatistics返回有关已接受,启动,接收错误,连接失败,连接重置等连接数的信息。这是我到目前为止评估连接的五个。
我意识到你真的不需要再有效地监控连接了。 也许NetworkInterface.GetAllNetworkInterfaces()方法可以帮助找出哪个Networkadapter正在发送数据并且应该被监控。
我现在理解Peter Ritchie对我的问题的评论。 FTP传输运行得非常好,协议可以完美地处理文件的传输,直到现在流式传输日志文件时才出现问题。在4周的测试中,我不断收到测井数据。