首页 文章

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

提问于
浏览
7

在Java中模拟网络的最佳方法是什么?

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

理想情况下,我想创建一个套接字的“模拟”版本,它们有自己的输入和输出流 . 最后,我将使用这些流进行数据传输,而不是仅仅在java对象之间移动数据,所以我想要模拟的是那种延迟,数据丢失以及您在实际网络中可能遇到的其他错误 .

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

谁能指出我正确的方向?

3 回答

  • 0

    您可以使用Akka在一台计算机上创建数百万个Actors,然后组织它们之间的通信,类似于'real' network .

    这是一个示例项目:https://github.com/adelbertc/scalanet

  • 1

    嗯,你真的不需要使用任何工具,但你的大脑更好地设计它 .

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

    您需要的是在对接口进行编码后,使用虚拟实现来模拟/替换实际实现 . 这种虚拟实现可以引入延迟,虚拟数据等功能 .

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

  • 3

    出于模拟目的,您可能需要检查Omnet++,我很简单 .

    示例6托管网络(摘自Omnet教程)

相关问题