关于QTcpServer数据流传输问题

鯎鯎 2010-08-16 06:16:19
我知道QT中有一个QHTTP类,但不知道具体怎么用,且不想用它,因为我要在其他嵌入式中使用,为了方便。
本人自己利用QTcpServer做了一个HTTP SERVER,现在已经基本完全,网页也可以正常访问,但问题是网页只能是文字,如果有图片就不能正常传输(非文字都不能正常传输)。
我看过别人一些例子,如果想以数据流传输文件,好像要对应版本号什么的,但前提好像是服务端和客户端都自己写,但HTTP SERVER的客户端是浏览器,那我应该要如何把数据流发送到浏览器??
因为数据传输方面我没有在QT使用过,所以对这方便一点都不了解,希望大大能帮帮忙!!
...全文
326 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
swift19221 2010-12-21
  • 打赏
  • 举报
回复
确实有http类,汗!!!!
为什么在 QtNetwork模块的类列表中没有列出来呢??
鯎鯎 2010-08-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 gemfield 的回复:]
QDataStream可以把I/O设备(比如文件、socket等)转化为顺序化的二进制流进行操作,当操作一些元素,比如QPixmap等Qt自己的结构,就需要设置版本号了,1.0的和4.6的毕竟不同,但对于int型等c++基本数据,则不需要版本号
[/Quote]
QByteArray 算是QT的类型吗?转化成2进制后,转换的形式会不同吗???
这些我都不了解,可以回答一下我的疑问吗??
gemfield 2010-08-19
  • 打赏
  • 举报
回复
当然是Qt的类,
假若客户端是用3.3版本写的,服务器端是4.6写的,怎么办?
huahua4040 2010-08-19
  • 打赏
  • 举报
回复
前两天刚培训过。。。
鯎鯎 2010-08-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 q616804668 的回复:]
不懂不过我建议你去找找精通QT4这本电子书它有介绍QHttp类的用法 在QT的安装目录下也有例子D:\QT\examples\network\http
[/Quote]

我就是不想用QHTTP类,才问这样的问题.........
huangayngjie 2010-08-18
  • 打赏
  • 举报
回复
意法半导体ST单片机STM全系列原装现货优势供应
gemfield 2010-08-18
  • 打赏
  • 举报
回复
QDataStream可以把I/O设备(比如文件、socket等)转化为顺序化的二进制流进行操作,当操作一些元素,比如QPixmap等Qt自己的结构,就需要设置版本号了,1.0的和4.6的毕竟不同,但对于int型等c++基本数据,则不需要版本号
鯎鯎 2010-08-18
  • 打赏
  • 举报
回复
已经解决了,为自己顶一下!
我的主要问题是不知道浏览器如果接收这数据流,如果按QT所以讲,要对应版本号的话就更加不清楚了,后来试了试,版本号是可以不加的,但是在什么情况要加,什么情况可以不加,我就不清楚了,希望有高人解决这个问题。
我的解决代码(部分),这是参考别人的。
QByteArray ba(file.size(),0);
if (!file.open(QIODevice::ReadOnly))
return;
QDataStream out(&file);
out.readRawData(ba.data(),ba.count());
http_body=ba;
ba.reserve(0);
file.close();
.....
tcpSocket->write(http_body);

因为ba在if条件语句中(因为要判断文件是否存在),所以不能直接在条件语句中使用,所以我在外部先定义了一个叫http_body的变量,再用Socket把其发送出来就可以了。
希望可以帮到其他人,哈哈。
上善若水邻 2010-08-17
  • 打赏
  • 举报
回复
不懂不过我建议你去找找精通QT4这本电子书它有介绍QHttp类的用法 在QT的安装目录下也有例子D:\QT\examples\network\http

16,231

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧