资源简介
使用QT编写tcp的简单服务端。能够同时连接多个客户端,很基础的实现,适合对Qt tcpsever 不太了解的小伙伴学习。代码仅供参考。
代码片段和文件信息
#include “MyTcpServer.h“
#include
#include
Server::Server(Qobject *parent int port):QTcpServer(parent)
{
qDebug()<<“>>>>start to listen...“;
listen(QHostAddress::Any port); //监听
}
void Server::incomingConnection(int socketDescriptor)
{
qDebug()<<“>>>>a new client connect“;
TcpSocket *tcpclientsocket = new TcpSocket(this);//只要有新的连接就生成一个新的通信套接字
//将新创建的通信套接字描述符指定为参数socketdescriptor
tcpclientsocket->setSocketDescriptor(socketDescriptor);
//将这个套接字加入客户端套接字列表中
tcpclientsocketlist.append(tcpclientsocket);
//接收到tcpclientsocket发送过来的更新界面的信号
connect(tcpclientsocket SIGNAL(updateserver(QStringint)) this SLOT(slotupdateserver(QStringint)));
connect(tcpclientsocket SIGNAL(clientdisconnected(int)) this SLOT(slotclientdisconnect(int)));
}
void Server::slotupdateserver(QString msg int length)
{
//将这个信号发送给界面
emit updateserver(msg length);
//将收到的信息发送给每个客户端从套接字列表中找到需要接收的套接字
for(int i = 0; i < tcpclientsocketlist.count(); i++)
{
QTcpSocket *item = tcpclientsocketlist.at(i);
// if(item->write((char*)msg.toUtf8().data() length) != length)
// {
// continue;
// }
item->write(msg.toUtf8().data());
}
}
void Server::slotclientdisconnect(int descriptor)
{
qDebug()<<“>>>>client disconnect!!!“;
for(int i = 0; i < tcpclientsocketlist.count(); i++)
{
QTcpSocket *item = tcpclientsocketlist.at(i);
if(item->socketDescriptor() == descriptor)
{
tcpclientsocketlist.removeAt(i);//如果有客户端断开连接, 就将列表中的套接字删除
qDebug()<<“>>>>client delet“;
return;
}
}
return;
}
int Server::SendData(QByteArray &arr)
{
qDebug() << “>>>>>SendSerialData:“<< arr.toHex();
int ret;
for(int i = 0; i < tcpclientsocketlist.count(); i++)
{
QTcpSocket *item = tcpclientsocketlist.at(i);
ret =item->socketDescriptor();
QHostAddress s=item->localAddress();
QString Ipadd = s.toString();
qDebug()<<“>>>>ip address:“<
item->write((arr));
item->flush();
}
qDebug() << “>>>>>ret:“< if(ret < 0)
{
qDebug() << “>>>>>SendData failed:“;
return -1;
}
return ret;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2638 2018-10-08 15:08 TCP服务端代码\MyTcpServer.cpp
文件 789 2018-10-08 09:50 TCP服务端代码\MyTcpServer.h
文件 1149 2018-10-08 09:48 TCP服务端代码\TcpSocket.cpp
文件 639 2018-10-08 09:50 TCP服务端代码\TcpSocket.h
目录 0 2018-10-10 10:41 TCP服务端代码
----------- --------- ---------- ----- ----
5215 5
- 上一篇:Commix(ModBus)
- 下一篇:智能垃圾桶
相关资源
- HP用SOCKET实现(客户端---服务端)
- TCP_UDP对结构体加密数据传输
- 一个简单方便的服务端ftp搭建工具
- 基于PIC的TCP/IP网络协议和zigbee无线传
- Apache Subversion1.10.3服务端SVN
- Ubuntu下操作Excel,qt代码
- 易语言cmd服务端源码易语言cmd远程服
- Qt图片浏览器 --基于Qt的Graphics View f
- 欧姆龙PLC tcp通信工具
- qtnribbon2破解
- Qt软件开发 完整项目代码
- 欧姆龙以太网通讯TCP/UDP及欧姆龙PLC程
- MQTT_3.1protocol_Specific中文版
- 在QT中使用RTP进行视频的采集和传输
- 流媒体相关协议标准RTP/RTSP/RTCP PDF文档
- 航海模拟器中DCPA TCPA的算法
- 易语言猜拳游戏客户端源码易语言猜
- TCPMP 支持ce6.0的播放器
- Mini6410 Qt4和Qtopia编程开发指南
- TCP/IP协议详解3卷全_高清_带书签
- Qt实现Code39条形码
- qt_ffmpeg_mp4_export_and_import.zip
- QT5.5入门与项目实战
- Huffman Compress 霍夫曼编码 压缩 解压缩
- 基于QT的黑白棋游戏设计和实现
- Qt写的连连看小游戏
- linux版石器1.82-6.0服务端
- QTranslate_6.7.2.7z
- 魔兽335模拟器源代码
- Qt基于FFmpeg播放本地 H.264H264文件
评论
共有 条评论