最近在用C++、Qt、boost::asio写一个服务器程序和客户端程序,来实现服务器传图片,然后客户端接收图片的功能。
本人觉得有两种方法可以实现。
一种是,把图片传到其他的服务器上(如QQ空间),然后保存图片的URL至本人实现的服务器所在电脑的数据库中,当客户端请求图片时,本人实现的服务器把URL传给客户端,客户端程序直接把接收的URL赋值到QML中的Image组件的source属性来访问图片。
另一种是,本人的服务器是真正的服务器,图片存在服务器所在电脑的本地文件夹中,当客户端请求图片时,服务器将图片转为二进制文件,再通过boost::asio传递给客户端,客户端收到二进制文件,再恢复为图片。
这两种方法哪一种好一些?
第二种方法中,怎么样把图片转为二进制?
asio库中已经可以通过TCP协议传递字符串,但它可以传二进制文件吗?假如可以,是不是本人还要完成应用层协议来传?
知道一点就答一点,谢谢大家。
解决方案:30分
1、可以使用ftp服务器,把文件传到ftp服务器上,你只关注ftp client的使用接口即可
2、本人写代码实现传输:读文件流,封装成协议,发送,另一端:接收,写文件
解决方案:10分
你服务器能承受这么大的流量吗,不能就存url,能就存服务器上