Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java模拟慢速/有损通信_Java_Performance_Communication_Simulation_Tcpmon - Fatal编程技术网

用java模拟慢速/有损通信

用java模拟慢速/有损通信,java,performance,communication,simulation,tcpmon,Java,Performance,Communication,Simulation,Tcpmon,我需要测试我公司服务器内部的一个功能,只有当客户端运行缓慢(如延迟和数据包丢失)时,它的好处才明显。在这种程度上,我需要在慢速和/或有损连接(TCP/HTTP)上模拟客户端。我使用的是Mac,Mountain Lion,理想情况下,我需要在本地运行服务器和客户端 我尝试采用的一种方法(没有成功)是获得一些java API,这些API允许我构建连接速度较慢的客户机。我知道JMeter有一种叫做SlowSockets(或类似的东西)的东西,但我一直在寻找更专注于低性能客户机的API。有什么有用的AP

我需要测试我公司服务器内部的一个功能,只有当客户端运行缓慢(如延迟和数据包丢失)时,它的好处才明显。在这种程度上,我需要在慢速和/或有损连接(TCP/HTTP)上模拟客户端。我使用的是Mac,Mountain Lion,理想情况下,我需要在本地运行服务器和客户端

我尝试采用的一种方法(没有成功)是获得一些java API,这些API允许我构建连接速度较慢的客户机。我知道JMeter有一种叫做SlowSockets(或类似的东西)的东西,但我一直在寻找更专注于低性能客户机的API。有什么有用的API吗

我尝试的另一种方法是使用代理作为客户机和服务器之间的中间人。在这种情况下,代理应该提供模拟慢速链接的功能。我尝试过Charles proxy(Mac)和ApacheTcpmon,但是当我尝试在工作中使用它们时,我似乎错过了一些东西。例如,使用TCPMon,当我在“代理”模式(即提供“模拟慢速链接”功能的模式)下启动它时,我为本地代理定义端口,但我看不到如何定义远程主机和端口。类似的事情也发生在查尔斯的身上;我可以在代理设置中设置本地端口,但我不知道如何定义代理的远程端(事实上,连接失败表示远程服务器没有响应)。有人知道我做错了什么吗

我尝试采用的另一种方法是使用较低级别(例如基于操作系统)的方法;在这种情况下,我尝试了苹果的网络链接调节器。我打开它并定义了我的慢度参数,但当我ping时,我似乎看不到预期的RTT等。我感觉NLC与XCode和iOS测试有着密切的关系,有谁能够将它用于测试其他(如Java)应用程序?我也在Mac上尝试过ipfw,但是手册上说ipfw现在已经不推荐了,我不想花时间去了解一个很快就不可用的工具

如有任何想法/帮助,将不胜感激


提前谢谢。

我想你已经有了最好的答案;适当的代理使您能够完全控制发送的数据。也许你应该修改你的问题,特别是询问使用什么代理软件和/或如何正确配置它。你考虑过使用模拟框架吗?如果你的代码很好地隔离,这可以帮助你模仿你想要的行为。@AlexLynch我的第一选择实际上是一个API,我可以用它来构建一个可配置的图形工具,但代理是一个足够好的解决方案。不幸的是,我似乎错过了一些关于如何正确使用我一直在使用的代理的内容。有没有任何经验?@fge:我不确定模仿框架会有什么帮助,但无论如何,这可能需要与构建我自己的“慢客户端框架”相当的努力,我没有时间。这就是为什么代理看起来很好。HTTP代理没有“远程”主机,因为它从传入的HTTP请求中找出远程主机(每次都不同:配置远程主机没有意义)