当前位置: 代码迷 >> QT开发 >> 单个QTcpSocket去连续多个IP发送数据失败
  详细解决方案

单个QTcpSocket去连续多个IP发送数据失败

热度:97   发布时间:2016-04-25 03:22:42.0
单个QTcpSocket往连续多个IP发送数据失败。
   m_ptrTcpSocket->connectToHost(QHostAddress("192.168.1.161"),9001);

   m_ptrTcpSocket->waitForConnected();
   qDebug("State:%dn",m_ptrTcpSocket->state());
   qDebug()<<"开始发送";
   int nWriteLen = m_ptrTcpSocket->write("123",strlen("123"));
   qDebug()<<"发送长度:"<<nWriteLen;
   m_ptrTcpSocket->waitForBytesWritten();

   m_ptrTcpSocket->disconnectFromHost();

   m_ptrTcpSocket->connectToHost(QHostAddress("192.168.1.161"),9002);

   m_ptrTcpSocket->waitForConnected();
   qDebug("State:%dn",m_ptrTcpSocket->state());
   qDebug()<<"开始发送";
   nWriteLen = m_ptrTcpSocket->write("123",strlen("123"));
   qDebug()<<"发送长度:"<<nWriteLen;
   m_ptrTcpSocket->waitForBytesWritten();

测试代码如上,大致情况就是往一个端口发送之后,马上端口往另一个端口继续发送,接口端口能建立连接(m_ptrTcpSocket->state() = 3),但是发送数据失败,请问为什么会这样?
------解决方案--------------------
上面代码可以正常往两个不同端口发送数据啊。
------解决方案--------------------
我使用的是Qt5 在XP上测试,打开另个一软件监听两端口,运行后,两个端口都可以接收到数据。
------解决方案--------------------
m_ptrTcpSocket->disconnectFromHost();改为close试试