2011-05-22 48 views
0

我写了简单的客户端 - 服务器应用程序,并尝试测试它。如何模拟消息丢失或服务器不发送的网络情况?

我需要编写一些代码来处理正在丧失回复消息(由服务器发送)时,不到达客户端...

我需要知道如何来模拟这种情况。但是我不能。

我已经试过CTRL-C服务器..但不知道这是否一个好方案.. 我从客户端得到:

send: 
0 0 0 5 0 0 1 48 25 112 -55 106 0 0 0 34 60 -72 117 -101 37 28 116 -85 -91 61 55 
-126 -50 9 5 64 -87 126 -31 -62 30 13 -90 -72 -124 118 20 88 -80 -9 -36 -33 -38 
123 

java.net.SocketException: Connection reset 
     at java.net.SocketInputStream.read(Unknown Source) 
     at net.Net.readMessageObject(Net.java:36) 
     at net.Pitcher.run(Pitcher.java:59) 
     at net.Pitcher.main(Pitcher.java:122) 

BTW,应用程序用Java编写的。

回答

0

如果您的应用程序相当简单,您可以使用netcat等程序连接到它,不要发送任何内容,并看看会发生什么。 否则你可以做的是重写你的服务器应用程序一点点,以引入某种随机测试失败。

+0

我需要更多解释 – 2011-05-22 20:52:14

+0

从你的代码判断,你使用的是TCP,是吗?因为TCP包不能丢失。 TCP协议确保数据包不会出现错误,丢失或无序。如果你想确保你的应用程序不会中断连接完全丢失,Ctrl + C服务器实际上是一个合理的场景。 – orbital 2011-05-22 20:58:20

+0

感谢您的信息,但是例如超时情况如何? – 2011-05-22 21:27:51

0

创建一个模拟网络对象,以便您可以模拟各种情况,在每种情况下操纵模拟网络对象,以便您可以测试应用程序是否与其进行适当交互。