TCP数据发送

ichliebe_dich 2012-09-01 03:33:14
void server::sendFortune()
{
QByteArray block;
QDataStream out(&block,QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_6);
out<<(quint16) 0;
out<<fortunes.at (qrand()%fortunes.size());
out.device()->seek(0);
out<<(quint16)(block.size)-sizeof(quint16);
QTcpSocket *clientConnection=tcpServer->nextPendingConnection();
connect(clientConnection,SIGNAL(disconnected(),clientConnectction,SLOT(deleterLater()));
clientConnect->write(block);
clientConnection->disconnectFromHost();
}
麻烦把上面每句的作用解释下
想深入了解如何工作的、、、
...全文
72 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
雲天之巔 2012-09-04
  • 打赏
  • 举报
回复
你这个是不是绑定在connected信号上?


如果是的话 就是这样解释:

void server::sendFortune()
{
QByteArray block;
QDataStream out(&block,QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_6);
out<<(quint16) 0; //往block里面写入0(长度是quint16)
out<<fortunes.at (qrand()%fortunes.size()); //fortunes是LIST? 总之就是写入要传送的数据吧
out.device()->seek(0); //将指针挪回0(即block的开始位置)
out<<(quint16)(block.size)-sizeof(quint16); //把开始写的0 改成要传送的数据的大小
QTcpSocket *clientConnection=tcpServer->nextPendingConnection(); //获取连接进来的socket
connect(clientConnection,SIGNAL(disconnected(),clientConnectction,SLOT(deleterLater()));
clientConnect->write(block); //发送数据
clientConnection->disconnectFromHost(); //断开连接
}


16,204

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧