我有一台 Windows 8 PC,正在测试一个用于网络套接字错误处理的测试版程序。我在模拟测试中遇到的问题之一是主机不可达和网络不可达错误。我如何模拟这些情况以了解程序是否正确处理它们。
答案1
- 尝试连接到未使用的 IP 地址。
- 在您想要模拟故障时拔掉网络连接
- 从交换机上拔下通话的另一端(如果是远程的,则断开互联网)。这个测试是测试当您的 PC 连接仍然打开时它所做的操作,这可能与当您的网络电缆断开连接时它所做的操作不同。
答案2
对于网络不可达错误,您可以使用route delete
并删除所有路由。然后您应该能够收到大量网络不可达错误。
答案3
虽然可以拔掉线路或删除路由表中的路由,但使用这些技术的错误情况相当有限。相反,您可以使用网络模拟器来配置虚拟网络,然后针对该网络测试您的应用程序。
这种方法可以给你带来以下几点:
- 测试场景可以轻松重复。
- 测试场景可以自动测试。
- 您可以测试许多不同的(且困难的)网络设置,而无需投资数百或数十万美元购买网络设备。
- 由于您不依赖于网络硬件的物理接近度,因此您可以在编写代码的任何地方进行测试。
有几种开源替代方案,例如 Cloonix、CORE Network 模拟器和其他的。
答案4
您还可以使用 Windows 8 的自带防火墙来阻止程序的连接。