tcp服务器端与多个客户端连接

server/2024/11/15 4:46:23/

如果希望Tcp服务器端可以与多个客户端连接,可以这样写:

    tcpServer=new QTcpServer(this);connect(tcpServer,SIGNAL(newConnection()),this,SLOT(onNewConnection()));
void MainWindow::onNewConnection()
{QTcpSocket *tcpSocket;//TCP通讯的SockettcpSocket = tcpServer->nextPendingConnection(); //创建socketqDebug()<<"tcpSocket:"<<tcpSocket;connect(tcpSocket, SIGNAL(connected()),this, SLOT(onClientConnected()));emit tcpSocket->connected();connect(tcpSocket, SIGNAL(disconnected()),this, SLOT(onClientDisconnected()));connect(tcpSocket,SIGNAL(stateChanged(QAbstractSocket::SocketState)),this,SLOT(onSocketStateChange(QAbstractSocket::SocketState)));emit tcpSocket->stateChanged(tcpSocket->state());connect(tcpSocket,SIGNAL(readyRead()),this,SLOT(onSocketReadyRead()));
}

相关的槽函数中:

void MainWindow::onClientConnected()
{//客户端接入时QTcpSocket* tcpSocket=(QTcpSocket*)sender();ui->plainTextEdit->appendPlainText("**client socket connected");ui->plainTextEdit->appendPlainText("**peer address:"+tcpSocket->peerAddress().toString());ui->plainTextEdit->appendPlainText("**peer port:"+QString::number(tcpSocket->peerPort()));
}

使用sender()来获取对应的QTcpSocket对象。

其实,主要就是QTcpServer进行监听:

客户端的QTcpSocket与服务器端的QTcpSocket进行通信。


http://www.ppmy.cn/server/19938.html

相关文章

玄子Share-PXE高效批量网络装机

玄子Share-PXE高效批量网络装机 部署PXE远程安装服务 PXE 概述 PXE&#xff08;Preboot eXcution Environment&#xff09; 预启动执行环境&#xff0c;在操作系统之前运行 服务端 运行DHCP服务&#xff0c;用来分配地址、定位引导程序运行TFTP服务&#xff0c;提供引导程…

配置jupyter的启动路径

jupyter的安装参考&#xff1a;python环境安装jupyter-CSDN博客 1&#xff0c;背景 继上一篇python环境安装jupyter&#xff0c;里面有一个问题&#xff0c;就是启动jupyter&#xff08;命令jupyter notebook&#xff09;之后&#xff0c;页面默认显示的是启动时候的路径。 …

12种创新的活动策划推广方法解读-华媒舍

活动策划与推广是现代社会中非常重要的营销手段。通过创新的活动策划和推广方法&#xff0c;可以提高活动的曝光度、吸引更多的参与者并达到宣传推广的目的。本文将探讨12种创新的活动策划推广方法。 1. 社交媒体营销 社交媒体平台是现代社会传播信息的重要渠道。活动策划者可…

‘language‘不能作为表名或字段名

今天写一个C#访问Access的程序&#xff0c;拼接SQL语句时一直出错&#xff0c; string sql "insert into dllinfos (dllname,dllfilename,type,functions,harm,repairmethod,issys, paths, ishorse, language, version, company) values (" textBox1.Text ",…

力扣HOT100 - 437. 路径总和 III

解题思路&#xff1a; 深度优先搜索 搜索所有节点的情况。 class Solution {public int pathSum(TreeNode root, long targetSum) {if (root null) return 0;int res recur(root, targetSum);res pathSum(root.left, targetSum);res pathSum(root.right, targetSum);ret…

使用API有效率地管理Dynadot域名,查询账户余额

关于Dynadot Dynadot是通过ICANN认证的域名注册商&#xff0c;自2002年成立以来&#xff0c;服务于全球108个国家和地区的客户&#xff0c;为数以万计的客户提供简洁&#xff0c;优惠&#xff0c;安全的域名注册以及管理服务。 Dynadot平台操作教程索引&#xff08;包括域名邮…

多批道处理算法

一、实验目的&#xff1a; 了解多道批处理系统的工作原理和调度算法熟悉先来先服务调度算法&#xff08;First Come First Served, FCFS&#xff09;的实现学习如何模拟多道批处理系统的调度过程 实验设备与实验环境&#xff1a; 计算机,Java编译系统,idea,ChatGPT 二、实验程…

python作业 切片逆转

题目&#xff1a; &#xff08;反转显示一个整数&#xff09;编写下面的函数&#xff0c;反向显示一个整数。 列如&#xff1a;reserse(3456)。编写一个测试程序&#xff0c;提示用户输入一个整数&#xff0c;然后显示它的反向数。 第一步定义一个函数&#xff1a; def rev…