Qt QTcpSocket recv 接收超时

rocky_vc 发布于 2017/02/14 13:48
阅读 486
收藏 0
Qt

使用Qt QTcpSocket 进行客户端接收信息时,发现存在延时5s - 20s; 通过wireshark抓包发现到达无线网卡时间 只比 server发送时间晚100ms(处于同一个局域网)。  那么延时问题出现在本机网络层 到 应用程序之间,

 本地recv代码为: 

	
char *buf = NULL;
	if (msglen > BUFSIZE) // BUFSIZE = 1024;
		buf = (char *)malloc(msglen+1);
	else
		buf = (char *)malloc(BUFSIZE);

	if (m_isOpen)
	{	
		m_recvmsg = m_tcpsocket->read(4).toStdString();
		memset(buf, 0, BUFSIZE);
		memcpy(&msglen, m_recvmsg.c_str(), 4);
		m_isOpen = false;
	}
	else
	{
		m_recvmsg = m_tcpsocket->read(msglen).toStdString();
		memcpy(buf, m_recvmsg.c_str(), msglen);
		buf[msglen] = '\0';
		//UnPackJson(std::string(buf));
		qDebug() << buf;
		m_isOpen = true;

	}

	free(buf);

    

加载中
0
mickelfeng
mickelfeng

这问题应该是你代码问题

rocky_vc
rocky_vc
的确是吗, server端发送的数据太快, 而我这边解析存在问题, 还有一开辟内存等一些操作堵塞了
rocky_vc
rocky_vc
回复@mickelfeng : 实在没看出来啊
0
mickelfeng
mickelfeng

整个代码。

返回顶部
顶部