github - p2psteam配置开发
1.环境配置
[1]安装epel源,并且更新repo
yum install epel-release
yum clean all
yum makecache
yum update
[2]安装python
yum install python
yum install python-pip
pip install –upgrade pip
[3]安装vlc库
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
yum install vlc*
yum install vlc-devel
[4]配置SFML库
从https://www.sfml-dev.org/download/sfml/2.1/下载【GCC - 64-bit】的文件,里面有lib和include目录:
cp SFML-2.5.1/lib/* /lib64
cp SFML-2.5.1/include/SFML /usr/include -r
[5]安装glew库
yum install libglew-dev glew-utils
如果编译时找不到libGLEW.so.1.5,创建一个软链接即可:ln -s libGLEW.so.1.7.0 libGLEW.so.1.5
2.程序部署运行
项目地址:https://github.com/xy-0x01/p2pstream
程序共有4个模块:
[1]centralServer是一个服务器,客户端向这个服务器请求peer列表。
[2]server是一个有数据的peer。
[3]client是一个没有数据的peer。
[4]videoplayer里面创建播放器,播放下载下来的数据。
测试流程:
整个流程就是,server目录下存在一个影片 hx.mp4,然后client向centralServer获取这个peer的地址,然后向这个peer下载数据,下载完成之后打开player进行播放。
另外注意的是player.cpp里面,main()函数首先sleep(8);这个8秒就是在等待下载数据,下载完了才能播放。
可以在一个设备上面测试,开三个窗口就可以,因为要打开播放器,所以centos需要有界面。
[1]启动centralServer:./central.exe 192.168.0.254 30000
[2]启动server: ./server.exe 192.168.0.254 2050 //这个端口必须时2050,因为程序已经写死。
[3]启动client: ./client.exe 192.168.0.254 30000 //该文件存在一个bug,返回的peer地址不对,直接把ips填上本机地址就行,其实centralServer并没有什么用。还一个bug,execl函数最后少一个参数NULL。
测试效果:
centralServer:
server:
client:
之后会自动打开播放器进行播放: