Java 在一台计算机上模拟p2p网络流量

Java 在一台计算机上模拟p2p网络流量,java,networking,p2p,traffic-simulation,Java,Networking,P2p,Traffic Simulation,用Java模拟网络的最佳方法是什么 我正处于网络化对等项目的早期阶段,为了确定客户端的一些必需特性,我希望能够在我的PC上同时模拟100多个实例 理想情况下,我希望创建一个套接字的“模拟”版本,具有自己的输入和输出流。最后,我将使用这些流进行数据传输,而不仅仅是在java对象之间移动数据,因此我想要模拟的是在实际网络中可能出现的延迟、数据丢失和其他错误 理想情况下,这些模拟方法将非常接近java.net.*的实际流标准,因此我不需要进行太多的重写,就可以从模拟转移到实际的客户端 有人能给我指出正

用Java模拟网络的最佳方法是什么

我正处于网络化对等项目的早期阶段,为了确定客户端的一些必需特性,我希望能够在我的PC上同时模拟100多个实例

理想情况下,我希望创建一个套接字的“模拟”版本,具有自己的输入和输出流。最后,我将使用这些流进行数据传输,而不仅仅是在java对象之间移动数据,因此我想要模拟的是在实际网络中可能出现的延迟、数据丢失和其他错误

理想情况下,这些模拟方法将非常接近
java.net.*
的实际流标准,因此我不需要进行太多的重写,就可以从模拟转移到实际的客户端

有人能给我指出正确的方向吗?

你可以用它在一台机器上创建数以百万计的演员,然后像“真实”的网络一样组织他们之间的交流

下面是一个示例项目:

出于模拟的目的,您可能想检查一下,我非常适合使用内置数据分析/统计工具进行大规模模拟。 写作类似于C++,看教程,它是非常直接的。 示例6主机网络(摘自Omnet++教程)


好吧,你其实不需要使用任何工具,但要用你的大脑来设计更好的工具

您需要用于底层通信框架的接口

一旦您针对接口进行了编码,您所需要的就是用一个虚拟实现来模拟/替换真实的实现。这个虚拟实现可以引入延迟、虚拟数据等特性


您可以使用spring容器。您可以在容器中编写一些虚拟服务器套接字来模拟多个实例之间的对话,或者更好地使用web容器来消除您的头痛。

不要添加SIG。对问题来说,它们是噪音。发生了什么?你看过文件了吗?我在邮件列表上看不到任何电子邮件,请不要害怕寻求帮助。大多数Akka用户都是从Java使用它,所以我很确定它不是bs。文档:对不起,我很难理解你的评论。事实上,不久前我在邮件列表上发布了一个问题,得到了一个答案,并且或多或少对它感到满意。现在,当我进行异步IO时,我会定期阅读akka文档,但由于演员在某种意义上是一种范式转换,我必须不止一次地阅读章节以获得完整的理解),我也会将akka与scala结合使用。虽然这也是我第一次想到的,问题表明,他希望模拟延迟和数据丢失。如果中间没有实际的网络,这将是非常重要的。一旦你设计得足够好,能够在它后面放置一个模拟网络,您需要实际模拟网络,从而实现他所要求的工具。延迟和数据LOO相当于让线程休眠并从底层数据结构中删除一些数据。如果您模拟/模拟,您可以以非常精细的方式(即高度可配置)测试您的实现,但是如果您依赖真实网络进行模拟,我不确定您是否可以这样做。