服务器和客户端如何传和收图片
最近在用C++、Qt、boost::asio写一个服务器程序和客户端程序,来实现服务器传图片,然后客户端接收图片的功能。
我觉得有两种方法可以实现。
一种是,把图片传到其他的服务器上(如QQ空间),然后保存图片的URL至自己实现的服务器所在电脑的数据库中,当客户端请求图片时,自己实现的服务器把URL传给客户端,客户端程序直接把接收的URL赋值到QML中的Image组件的source属性来访问图片。
另一种是,自己的服务器是真正的服务器,图片存在服务器所在电脑的本地文件夹中,当客户端请求图片时,服务器将图片转为二进制文件,再通过boost::asio传递给客户端,客户端收到二进制文件,再恢复为图片。
这两种方法哪一种好一些?
第二种方法中,如何把图片转为二进制?
asio库中已经可以通过TCP协议传递字符串,但它可以传二进制文件吗?如果可以,是不是自己还要完成应用层协议来传?
知道一点就答一点,谢谢大家。