Qt Socket 高速通信问题 5C

Qt Socket网络通信中,可不可把接收缓区开大,这样会有影响吗?使用UDP进行高速通信中的丢包问题怎么解决啊?两台电脑直接链接的

0

5个回答

1,可以调大缓冲区,这个一般需要通过测试找到一个性能最适合的大小。2,UDP丢包可以让客户端重传,加入一些确认机制

1

之前做通讯都是用socket直接做的,qt的有些不可控

0

websocket 通讯啊 很方

0

为什么不用TCP呢,原来我做过QT的socket通信,稳定性感觉不如C#winform的

0

可以尝试逐渐加大包长,之前用3G模块传过的512一包的。电脑直连肯定好些,建议1024,另外,包尾用crc校验。或者用应答的流水号校验,校验不过重发

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
串口高速通信问题
串口波特率921600,发送和接收都是用Timer控制的,都是50ms一次,每次接收1000字节rn在接收数据时如果有其它操作太多(切换窗口等)就会出现数据错位,第一次读的数据多于1000个,多出来的部分本应是第二组数据的开头,成了第一组数据的结尾,导致以后每组数据都产生错位rn有这方面经验的还请多多帮忙
qt socket
sendClearSensorValueRecordCmd();//此命令发送出,会返回3条数据包rn sleep(1);rn tcpSocket->readAll();//清空socket,可以这样做吧rn sleep(1);rn tcpSocket->readAll();//再次清空,确认下rn //发送11采集保存命令rn sendStageValueCmd();//此命令发出后,4秒内收到两条命令rn sleep(3);rn //清空socket连接rn tcpSocket->readAll();rn// sleep(2);rn tcpSocket->readAll();rn //发送轮询的20采集命令rn sendQuerySensorValueCmd();//这才是我最需要的命令,但是问题也出在了,这个命令发出后,收的数据包一直不正确。我把传感器串口连接,手动发送上述命令,收的数据很好,没任何错误,所以我肯定出在了这个socket.请问清空那做的对吗??还有别的方法吗?运行至此,理论不应该在收的,前面两个命令的返回数据包,但是现实是收到了,然后才是20这条命令的。rn复制代码
QT下的SOCKET????
先有一块2440的板子,是LINUX系统的,已经烧好程序了(客户端),现在想用网口和PC机传视频。我不太懂硬件,不知道WINDOWS上写好的服务器是否可以与他通信,我用的是C#写的,现在调试不通,是我的方案有问题还是代码有问题。查了下资料貌似板子里的是属于QT SOCKET,那它与WINDOWS里的SOCKET可以相互兼容进行通信吗?求解?
基于FPGA的高速通信接口设计
基于FPGA的高速通信接口设计,不错哦。
高速通信下环形缓冲区设计及实现
1.高速通信下,环形缓冲区设计及实现;可直接使用演示。 2.包括:服务端和客户端。说明:SOCKET通信非常简略,只为环形缓冲区测试使用,也适合初学都学习。 其他:里面包含SOCKET通信客户端/服务器演示,还包括了环形缓冲区现成的代码。
紧急求教!关于串口高速通信的问题!
我正在用BCB做一个通过串口高速通信的程序,发送完一帧信息后需要改变校验状态,等待几毫秒(典型值4ms)就要接收回送信息,结果发现有的芯片组的电脑上运行正常(Intel BX),有的电脑上运行接收不到数据(VIA、Intel 810)!而且Windows2000下运行比WindowsXP下效果也好很多。以上是用的Pcomm.dll做的串口访问,如果用API的话串口的校验状态老容易设置出错。rn请问这个到底是什么原因?怎么解决?如有消息请发到信箱:hp104@sohu.com、hp104@163.comrn急!rn谢谢!
qt socket 通信 接收问题
我想写一个操作tcpsocket的类,这样用起来会很清晰吧。rn遇到点问题,请教各位高手。rn1、我看很多例子都是用readyRead()信号触发来接收数据,我能否不用这个事件触发而自己主动去接收呢?rn我试着去做,可是第一次接收总是为“”。 rnQString tmp;rntmp = QString::fromLocal8Bit(tcpSocket->readAll());rn服务器端用的原来c#写的程序,用的是同步socket。rn我以为是因为数据没有接收到,而采用tcpSocket->waitForReadyRead(3000),rn情况还是没有好转。rn我之前用事件触发时,接收信息是正常的,没有问题。rn rn2、我自己写的这个操作socket类,怎样设计才能可以使用connect呢?我是qt新手,很多东东还没太清晰,rn请大侠没多指教哇!
计算机串口与单片机串口高速通信问题。
计算机串口编程设置的波特率一般都是固定的几个,如2400,9600,57600,115200等,rn而单片机串口的波特率设置方法使得它的波特率不一定刚好是计算机串口的波特率,特别是在高速状态下,它的速度可能是62K或者180K左右,而与计算机特定的几个波特率相差较大,一般来说,串口通信收发双方波特率的误差不应大于2.5% 我在实际开发中需要以大于57600波特率的速度实现PC机与单片机之间的双向通信,不知该如何实现?
Qt Socket 多线程代码实现
自已用Qt写的多线程服务器实现功能,用QtcpSocket进行通讯,可以正常编译运行,很适合初学者学习使用;
qt socket 服务端
qt socket 服务端,可以实现两台设备间的互相通讯
Qt socket demo
qt4 socket demo
Qt socket 多线程实现
用QTcpSocket实现的客户端.rn要求:rn1,有一个线程不停的等待接收这个socket的数据(有数据一到,就接收,然后写入一个全局变量(QString)中).rn2, 要求主线程,可以对这个socket发送数据.rnrn我自己写,老是出现socket notifiers cannot be enabled from another thread.rn
qt创建SOCKET编译报错
![图片说明](https://img-ask.csdn.net/upload/201603/23/1458722980_596068.png)r为什么用QT在windows下创建SOCKET套接字会报错,是不是编译器的问题啊,找来找去找不到问题啊。。。。。求大神相助,网络编程新手,还有就是我已经确定包含了WS2_32.lib
qt小程序socket
qt的小程序,好多实用的代码
epoll for qt socket网络模型
最近在开发im服务器,需要大并发链接。QT默认的是使用select模型的,这种轮询方式非常慢。我 github找到了epoll版本的qt.修改了QT的socket notify内核,不需要修改原来编写的代码,直接设置QT的事件转发方式就行了。支持qt4.0和5.0 csdn博客:http://blog.csdn.net/rushroom
Qt socket使用实例
Qt:用socket实现网络编程,使用tcp协议;
QT socket 通信流程
谁能给一个 qt 的 tcp 通信的简单流程,包括 server 端和 client 端的相互通信。
QT中Socket加密算法
QT sokcet加密算法 使用SSL进行的QT SOCKET加密算法
Qt之socket通讯
1、编译环境 Qt5.6+VS2013 1、运用VS创建Qt项目时,选择Network: 注:用QtCreator建立项目,需要在.pro文件中,引入NetWork模块 2、服务器端代码 sever_tcp.h #ifndef SEVER_TCP_H #define SEVER_TCP_H #include <QtWidgets/QMainWindow> #incl...
Qt Socket 多线程操作
Qt 关于Socket 多线程通信 最近有个项目需要用到Qt中的socket通信,于是就查阅网上的一些资料和QT API的文档,过程虽然比较艰难,但成果确实~,你懂得,现在就和大家分享它们的用法. 首先Qt关于关于Socket需要使用QTcpServer和QTcpSocket,其中QTcpServer做为服务端,而QTcpSocket则作为客户端.通过查看QTcpServer的API,它可以通
Qt 写的socket程序问题
需要发广播,通知所有局域网内的安装有客户端的计算机,该如何写?
QT socket服务器
qt搭建的socket服务器,包含server端和client端
qt写的socket的client
直接用qt打开运行就可以与网络助手通信
QT socket program
QT socket program, pure C plus plus
Qt web socket
Qt web socket
qt socket 一对多-多线程
接着刚才上传的qt socket one by one ,并程,多线程,最终完善了容错,和中英文,基本实现qt 局域网通信小程序。。。注意,阅读readme ,我编写的server 要用我的client 端接收(有设计字符格式问题)。。然后完事,跪求qt里应用spserver 的实例,要求,实现socket 读写通信。。。等待。。。学习
关于QT socket 编程
第一个验证:创建TCP服务器要求:                1、能够监听指定端口的 数据信息;                2、能够检测到有新的客户端建立连接;            3、能够检测到客户端的断开;            4、能够检测到接收到的客户端的数据;            5、能够发送数据到指定的客户端;测试开始:1、头文件#include <QTcpSocke...
Qt socket的文件传输
关于------------------ qt tcpSocket的文件传输,包含客户端和服务端两个程序,实现文件传输通信
Qt 的 Socket 通讯出现异常。
本来C/S程序运行的好好的。rnrn但是这次一条指令的数据有点大了,超过 3MB ,结果在客户端接收到时出现的中间部分字符丢失。rnrn可是也不是每次都是这样,基本上成功率只有 10% , 试十次,九次失败。rnrn想来想去,会不会是服务器或客户端的缓存不足?导致数据丢失了呢?rnrn以前用C++Builder做的的应用完全一样,也没出现过这个问题呀??rnrn想不通了 ... ...
Qt socket传送文件
自己写的用qt传送文件程序,只要修改Qt属性为Wince再编译就可以再Wince下执行,当然前提是由装qt
QT socket 服务器端代码
#ifndef TCPCLIENT_H #define TCPCLIENT_H #include namespace QTTCP { class TcpClient : public QTcpSocket { Q_OBJECT public: explicit TcpClient(QObject *parent = 0); signal
QT socket 通信程序源代码
基于QT的socket通信程序 包括客户端和服务端 通过不同编译器可在不同平台下运行
QT使用socket的聊天室
使用QT的socket编写的聊天室,包含客户端和服务端。。。。
FPGA与DSP的高速通信接口设计与实现
FPGA与DSP的高速通信接口设计与实现
关于Qt子线程中用socket的问题
我的代码是这样的rn[code=c]rnclass MyThread : public QThreadrnrn Q_OBJECTrnpublic:rn //explicit MyThread(QObject *parent = 0);rn ~MyThread();rn public:rn MyThread();rnrn protected:rn void run();rn private:rn widgetSec *myptr;rn QTcpSocket *ThreadTcp;rnrnrnpublic:rn QString a;rn QTcpSocket *tcp;rn int TcpDes;rnsignals:rn void threadEnd();rn void deliverInfo();//传递信号rn rnpublic slots:rn rn;rnMyThread::MyThread()rnrn connect(this,SIGNAL(finished()),this,SLOT(deleteLater()));rnrnMyThread::~MyThread()rnrnrn delete ThreadTcp;我在析构函数中加delete ,信息就会发不出去rnrnvoid MyThread::run()rn//while(1)rn ThreadTcp=new QTcpSocket;rn ThreadTcp->setSocketDescriptor(TcpDes);rn int sign=ThreadTcp->write(a.toLatin1());rn qDebug()<waitForBytesWritten(-1);rnrn bool b=ThreadTcp->flush();rnrnrn[/code]rn如果我在子线程中delete我new的QTcpSocket变量,信息就发不出去了 请问这是为什么
qt 做socket 客户端connecttohost的问题
本地做一个qt的聊天工具, 服务器端已经起来, 用客户端进行 connnecttohost的时候 想知道是否connect成功,做了槽函数,获取两个信号 一个是error(), 一个是connected();但是两个都获取不到, connecttohost还有其他的返回码?rn rn 然后在检查错误的时候 rn bool b = m_p_clientSocket->isValid(); 的返回值是true, rn QAbstractSocket::SocketError se = m_p_clientSocket->error();的返回值是-1rnrnrn下面是client的代码rnrnrnrnrnrnvoid client_talk::connect_server()rnrn m_p_clientSocket = new QTcpSocket(this);rn connect(m_p_clientSocket, SIGNAL(connected()), this, SLOT(connect_sucessful()));rn connect(m_p_clientSocket,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(connect_false(QAbstractSocket::SocketError)));rn m_p_clientSocket->connectToHost(QHostAddress("127.0.0.1"), 123456);rn bool b = m_p_clientSocket->isValid();rn QAbstractSocket::SocketError se = m_p_clientSocket->error();rnrnrnrnrnrnint client_talk::connect_sucessful()rnrnrn QMessageBox mess;rn mess.setFont(QFont("Sans Serif",12,50));rn mess.warning(this,QString::fromLocal8Bit("about"),QString::fromLocal8Bit("连接服务器成功"));rnrn return 0;rnrnrnrnvoid client_talk::connect_false(QAbstractSocket::SocketError a)rnrn QMessageBox mess;rn mess.setFont(QFont("Sans Serif",12,50));rn mess.warning(this,QString::fromLocal8Bit("about"),QString::fromLocal8Bit("连接失败"));rnrn return ;rnrnrnrnrn求解惑 还有哪里没有想到的吗
qt中socket指针跨线程问题
[code=C/C++]#include "serverThread.h"rn#include "mainpanel.h"rn#include rn#include rnrnserverThread::serverThread(int socketDescriptor,QObject *parent)rn :QThread(parent),socketDescriptor(socketDescriptor)rnrn dsv = (airServer *)parent;rnrnrnrnvoid serverThread::run()rnrn tcpSocket=new QTcpSocket;rn if (!tcpSocket->setSocketDescriptor(socketDescriptor))rn rn emit error(tcpSocket->error());rn return;rn rn if(dsv->dlg->getMode() == 0)rn rn preMode=0;rn curMode=0;rn rnrn else if(dsv->dlg->getMode() == 1)rn rn preMode=1;rn curMode=1;rnrn rn sendMessage();rn connect(tcpSocket,SIGNAL(readyRead()),this,SLOT(readSocket()));rn timer=new QTimer;rn timer->start(1000);rn connect(timer,SIGNAL(timeout()),this,SLOT(judge()));rn exec();rnrnrnvoid serverThread::ntoc(int num)rnrn msg1[2]=num/10+'0';rn msg1[3]=num%10+'0';rnrnrnvoid serverThread::readSocket()rnrn char getmsg[20]=0;rn tcpSocket->read(getmsg,20);rn qDebug("&&&&%s",getmsg);rn int n;rn n=(getmsg[0]-'0')*10+(getmsg[1]-'0');rn qDebug("%d",n);rn if(getmsg[11]=='B')rn rn dsv->dlg->ifwork[n]=1;rn rn elsern rn dsv->dlg->ifwork[n]=0;rn rn if(dsv->dlg->judge()==0)rn dsv->dlg->setStatusSB();rn elsern dsv->dlg->setStatusWork();rn if(getmsg[11]=='D')rn rn // tcpSocket->disconnectFromHost();rn // tcpSocket->waitForDisconnected();rn qDebug("duan");rn quit();rn rnrnrnvoid serverThread::sendMessage()rnrn memset(msg1,0,20);rnrn if(curMode == 0)rn rn msg1[0]='L';rn rnrn else if(curMode == 1)rn rn msg1[0]='H';rn rn msg1[1]=' ';rn ntoc(dsv->dlg->getLastNum());rn msg1[4]='0';rn msg1[5]=' ';rn qDebug("~%s",msg1);rn tcpSocket->write(msg1);rnrnrnrnvoid serverThread::judge()rnrn if(dsv->dlg->getMode() == 0)rn rn preMode=curMode;rn curMode=0;rn rnrn else if(dsv->dlg->getMode() == 1)rn rn preMode=curMode;rn curMode=1;rn rn if(curMode!=preMode)rn sendMessage();rn if(dsv->dlg->ifclose==0)rn rn tcpSocket->disconnectFromHost();rn tcpSocket->waitForDisconnected();rn rnrn[/code]rn我在槽函数judge();里调用sendMessage();说我socket指针跨线程了,我的socket是在run里new的啊,为什么跨线程了,求指点
QT socket 通信自动发送数据
我把要发送的数据写入了一个txt文档,然后在textedit里通过QFile 已逐条读取的方式打开,手动点击发送按钮,数据能正常发给接收端,当我使用定时器每2秒让其自动发送一组数据时,前两个数据能正常接收,后面的就会出现黏包,界面还会卡死,请问大神们这是为什么?rnrn发送端程序:rn[img=https://img-bbs.csdn.net/upload/201804/27/1524836241_288927.png][/img]rn接收端程序:Python写的rn[img=https://img-bbs.csdn.net/upload/201804/27/1524836255_837064.png][/img]rn接收端运行的结果:rn[img=https://img-bbs.csdn.net/upload/201804/27/1524836267_139927.jpg][/img]rn要发送的数据:rn[img=https://img-bbs.csdn.net/upload/201804/27/1524836282_891694.png][/img]
Qt实现socket服务端和客户端
QT5实现socket客户端服务端 QtTcpThreadServer-master 来自http://www.dushibaiyu.com/2013/12/qtcpserver%E5%A4%9A%E7%BA%BF%E7%A8%8B%E5%AE%9E%E7%8E%B0.html 使用了多线程进行客户端的连接 myTcpClient 使用信号和槽,实现发送,发送部分可以使用16进制,方便测试
qt与java之间socket通讯
qt与javasocket通讯,消息格式类似json。qt部分充当服务端。
相关热词 c# 线程顺序 c#昨天当前时间 c# 多进程 锁 c#mysql图片存取 c# ocx 委托事件 c# 读取类的属性和值 c# out 使用限制 c#获取url的id c#怎么进行分页查询 c# update 集合