• 5485阅读
  • 6回复

qt3写的socket客户端程序读消息出现诡异问题,请帮忙看看啊 [复制链接]

上一主题 下一主题
离线naga1003
 
只看楼主 倒序阅读 楼主  发表于: 2009-10-15
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —

用qt3(用的qte的库)写的socket客户端程序,服务器端是c#写的,测试过服务器端工作正常,现在问题是当客户端与服务器端正常连接后,服务器发送byte[1024]的数据到客户端,我想把这些数据打印到textLable上显示,可是怎么都显示不出来,永远都是空,我的接收部分程序,很简单,就是这样:

char information[1024];
int i=socket->readBlock(information,1024);//这里我打印了i,发现是1024,说明确实读到了数据
textLable->setText(tr(information[0]));//我只想打印第一个字节的数据,结果发现是空

我想知道,比如我明明第一个字节发送的是12(10进制的),怎么我就没法显示成12到textLable上呢?应该做怎样的数据转换操作呢??非常急啊,请帮帮忙~
离线dbzhang800

只看该作者 1楼 发表于: 2009-10-15
'\x12' 是不可见字符 !!
离线naga1003
只看该作者 2楼 发表于: 2009-10-15
谢谢回复,我只是举个例子,那我想让qt3上的textLable里显示出"12"之类的不可见字符要怎么做呢?
离线dbzhang800

只看该作者 3楼 发表于: 2009-10-15
现在问题转化了,如何将 整数 12 转换成 字符串 “12”

这个你应该知道如何做的
离线naga1003
只看该作者 4楼 发表于: 2009-10-15
其实问题是这样的:

我从socket接收到得是byte[]类型的数据,其中byte[0]这个元素,我在发送的时候是用的c#(byte[0]=Convert.toByte("10")),现在我在qt端接收的时候如果用if语句判断,如下:
if(byte[0]==10)
{
textLable->setText(tr("10"));
}
那么我成功显示了 “10”

但是,我想直接这样做:

textLable->setText(tr(byte[0]));的时候我无法显示任何东西,我就想知道我应该在这里做怎么样的转换啊?这个问题好像并不是int转换到Qstring的问题啊,我读取到的是byte类型啊,我理解错了吗?
离线naga1003
只看该作者 5楼 发表于: 2009-10-15
問題解決,樓上說的極是啊
离线nanatintin

只看该作者 6楼 发表于: 2011-04-22
你好,请问您如何在Qt3中,从server向client发消息呢?
快速回复
限100 字节
 
上一个 下一个