3

我目前正在编写一个系统日志程序,它通过 ftp 发送不同的日志。我面临的问题是我的程序应该在上传之前和上传期间不断检查连接是否正在使用,以便在其他程序想要使用连接时停止发送数据包。

我实际上发现这个链接可以帮助我测量连接的速度,但我认为我只能使用后者来发现某些东西是否已经在流式传输。在阅读 System.Net.NetworkInformation 上的库条目后,检查各种网络统计信息和状态也不是问题。如前所述,我唯一的问题是检查是否有其他程序想要发送一些东西。

正如您可能从问题中看出的那样,我对这个主题非常陌生,并且是一个相当初级的程序员。我一直在阅读 System.Net.NetworkInformation 命名空间库并促进它的各种类、方法和委托。我有一种感觉,我在正确的轨道上,但只是没有到达那里。有人朝正确的方向推动了吗?

谢谢你。

4

1 回答 1

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 正在发送数据并且应该被监控。

我现在了解彼得里奇对我的问题的评论。FTP 传输运行得非常好,该协议完美地处理了文件的传输,到目前为止,在流式传输日志文件方面没有出现任何问题。在 4 周的测试中,我不断收到记录数据。

于 2012-08-20T11:02:35.163 回答