1 在命令行中运行peersim
a.从官方网站http://peersim.sourceforge.net/上下载最新的peersim-1.0.5.zip,解压到你所需的目录中,本人使用的目录是F:\sim\
b.运行cmd,进入到F:\sim
c.运行cd peersim-1.0.5,进入到主目录下
d.在主目录中有个README文件,用写字板打开,可以看见里面运行模拟的方法,其中有一句运行命令如下:
java -cp "peersim-1.0.5.jar:jep-2.3.0.jar:djep-1.0.0.jar" peersim.Simulator example/config-example1.txt。将其中的“:”改成“;”(windows下),不然运行会报错。NoDefClassFound。
-cp 可选项是classpath的简写,既编译时需要后面的jar文件。
peersim.Simulator是PeerSim运行的主函数,所有的协议模拟都需要从它开始。
Example/config-example1.txt 指定了你要运行的协议的配置文件。每个需要模拟的协议提供了配置文件。
输出结果:当运行以上语句后就可以查看输出结果了。
Chord等协议的模拟:
a. 需要从官方网站http://peersim.sourceforge.net/上下载对应的Chord和Pastry协议的压缩包
b. 解压
c. 将chord源码生成.jar,命名为chord.jar,放在chord目录下
d. 从peersim-1.0.5.jar中将peersim-1.0.5、jar:jep-2.3.0.jar、djep-1.0.0.jar三个包拷到chord目录下
e. 运行java -cp "peersim-1.0.5.jar:jep-2.3.0.jar:djep-1.0.0.jar;chord.jar" peersim.Simulator example.cfg 即可看到模拟结果
第c步需要打包的原因:
Chord目录下提供的readMe-chord.pdf是不需要对chord源码打包,但是这样做的话是会报NoDefClassFound错误的,因为Chord源码本没有编译过,没有.class文件。
Pastry类似。
2 将工程导入到Eclipse中
a.新建一个工程,可以命名为PeerSim
b.从将peersim-1.0.5\src\目录下将所有的源码拷到PeerSim中
c.将peersim-1.0.5目录下所有的jar包拷到PeerSim工程下
d.通过Build Path将所需的jar关联上。
运行:
主函数在peersim包下,直接运行里面的Simulator类,此时会报如下的错误:
Simulator: loading configuration
Simulator: unable to determine simulation engine type
这是因为没有添加配置文件的原因。
方法:
Run as->Run Configurations:
在main中选择刚才运行的Simulator
在arguments的program arguments中输入config-example1.txt,然后点击apply run即可。