QT从主界面开始连接socket,怎么在其他界面利用这个连接发信息给服务器?

QT从主界面开始连接socket,怎么在其他界面利用这个连接发信息给服务器?,第1张

你只要保证这个Socket的生存周期足够在别的界面里面使用他就好了,主界面建立好连接,设置对了IP端口等等的,在别的地方直接调用对象调用write()函数就行了(不知道你用的是TCP还是UDP,具体的函数有点区别但大致差不多)

首先回答第一个问题,读和写可以有多种实现方式,用write和read只是其中一种,前面一个函数中的 clientConnection->write(block)是调用了QTcpSocket 类中的write方法来实现,如果你想不用此方法调用类中的read和write方法,就是你问的第二个问题,in和out的作用,in和out在这里将对socket中的报文收发变为数据流的形式来操作,QDataStream in(tcpSocket)比如这一句是将tcpSocket这个连接的实例对象作为一个文件描述符传递给QDataStream,然后 in >> blockSize这句话实现的就是相当于read的操作,就是将数据流读出来。这个 out << (quint16)(blocksize() - sizeof(quint16))是写入。实际上对诸如串口收发,读写文件,socket通信等等,用C语言来写,抽象出来都是对文件描述符进行操作,都可以用write和read来做,所以,实际上,第一种方法和第二种方法是一样的,就看你选择什么样的方法了,第三个问题可参考out << (quint16)(blocksize() - sizeof(quint16))这样的方法在收到数据以后把数据发出去。

请给分。。。

如果文件不大,应该以字节流的形式加载文件到内存,然后多线程同时读取,相当于批量上传前,单线程加载弄个进度条。

多线程读取文件的时候你可以给文件加锁,如果有锁sleep1没有锁就执行业务代码然后释放锁。

qt应用程序开发框架,一个1991年由QtCompany开发的跨平台C加加图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展以及一些宏,Qt很容易扩展,并且允许真正地组件编程。

各位大侠们,由于对QT不熟悉,所以请大侠们多多指教

我现在服务端是C# ,发送了 转换为二进制流,已字节的形式发送,

------解决方案--------------------------------------------------------

假设你的二进制流放在char buffer[]里FILE fp;fp = fopen(testjpeg, wb);

if(fp != NULL){size_t ret = fwrite(buffer, sizeof(char), size, fp);

fclose(fp);}

------解决方案--------------------------------------------------------

只要严格按照发送协议和标准格式重新组合就可以了

------解决方案--------------------------------------------------------

流就是流,就是一串0101的数据,你传递的,就是这样的数据,不要把它理解成或者声音或者视频,它仅仅是01而已,关键点是,当你把这些01读到客户端的一个buffer中后(一楼的应该用unsigned char buffer[]吧),如何保存这些数据,你把这些数据写进一个jpeg文件,它就是一张,你把它写进一个txt文件,它就是一堆乱码

------解决方案--------------------------------------------------------

可能是您的BUFFER太小

------解决方案--------------------------------------------------------

QT中的也和你给的QT设备有关系的吧

------解决方案--------------------------------------------------------

全部弄完拼接起来,有带宽限制的 不可能一下子发送完毕吧

所谓细水长流~

哎呀 洒家又扯淡了。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » QT从主界面开始连接socket,怎么在其他界面利用这个连接发信息给服务器?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情