资源简介
使用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)
- 下一篇:智能垃圾桶
相关资源
- Modbus协议官方文档中、英文全
- 酒店管理系统基于Qt Creator5)
- FTP课程设计(服务端+客户端)
- Omron ETN21模块进行modbustcp通讯
- vtk QT做的三维地质可视化系统2of2
- Qt局域网聊天软件
- Qt Creator opengl实现四元数鼠标控制轨迹
- QT局域网聊天系统(基于QT5.修改过)
- qt-电子点菜系统
- 组态王中S7-300TCP驱动
- C 餐厅叫号系统(QT平)
- 基于Apache Mina实现的TCP长连接和短连接
- QT 实现文件下载
- qt图像处理
- CVI下的TCP服务器和客户端
- 代码客:G-TcpServer(IOCP) 1.0 正式版及
- QT,JPEG解码源代码(已完成)
- TCP 发包工具(windows)
- Qt 播放音频文件
- VxWorks TCPIP协议栈
- socket小工具(可方便建立TCP UDP的soc
- vc 编写的基于TCP协议的客户/服务器
- 61850客户端服务端测试程序
- 基于CSocket的多人聊天室
- 采用WINSOCK2 编写的TCP/UDP通信程序
- Qt 读取16进制的data文件
- Modbus TCP Client
- radmin服务端win10亲测可用,带破解方法
- MQTT+串口(usart)透传
- 易语言QQTEA算法源码
评论
共有 条评论