免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5221 | 回复: 3
打印 上一主题 下一主题

[应用] 急求!!Qt socket编程 传输数据 编码问题 在线等~~ [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-05-23 10:36 |只看该作者 |倒序浏览
各位大虾好:

    小弟苦逼大四党一名,临近毕业,毕设还没有搞完。小弟毕设做的是餐馆点菜系统,点菜手持终端使用mini2440,即socket客户端,使用Qt编写程序;服务器端使用PC,

使用MFC编写程序。

    现在遇到的问题是,我需要在本地(客户端)数据库读取数据,然后将数据打包传送给服务器端。折腾了两天,在网上看了些资料,关于Qt socket作为客户端编程并传输数

据,貌似涉及到了QByteArray这个字节数组类,因为我从数据库读取的数据大部分是QString类型,所以我尝试使用网上介绍的方法将一个任意的QString字符串<<存进

QByteArray。使用size()函数查看QByteArray大小,的确是存入了数据,但是想把其中的数据读取转化为QString类型并显示时,字符串为空……

    上面这些测试只是在本地QT程序中测试了下,在服务器端也能接受到数据,读取时也为空。个人感觉可能是编码问题,但以前的确没有接触过socket传输数据 编码、解码

的问题,对这个完全不了解,希望各位大虾帮帮忙~~

    写的有点多,感谢各位大虾耐心看完,小弟在线等消息~

论坛徽章:
0
2 [报告]
发表于 2013-06-06 16:48 |只看该作者
很9之前接触过一点,写点还记得的,希望对楼主由于。
1.QString变量转QByteArray(windows环境下)
QString message4;
QByteArray array1=message4.toUtf8();

2.数据发送(windows 发windows,收发端都用QT做的)
client = new QTcpSocket(this);
QHostAddress *serverIp = new QHostAddress;
int port = ui->lineEdit4->text().toInt(&ok,10);//将text中的内容转换为10进制int型返回,如果转换失败,则给ok赋值0
client->connectToHost(*serverIp,port);//连接
client->write(array1,array1.size());//发送

论坛徽章:
0
3 [报告]
发表于 2013-06-09 14:43 |只看该作者
回复 2# yyddddmw
谢谢这位大神的回答~

问题我已经解决了,Windows下Qt可直接使用memcpy函数,所以传数据的问题迎刃而解~


   

论坛徽章:
0
4 [报告]
发表于 2013-07-31 12:08 |只看该作者
我也碰到类似问题,请问楼主怎么解决的。怎么使用memcpy
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP