今天小编给大家分享一下QT基于TCP如何实现网络聊免费云主机域名天室程序的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。TCP与UDP的差别如图:如下图所示,TCP能够为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错 地送达网络上的其他计算机。因此,对可靠性要求高的数据通信系统往往使用TCP传输数据,但在正式收发数据前,通信双方必须首先建立连接。下面介绍基于TCP的经典编程模型,TCP客户端与服务器间的交互时序如下图所示:TCP服务器端的具体实现如下:建立工程TcpServer.pro,文件代码如下。(1)头文件“tcpserver.h”中声明了需要的各种控件,TcpServer继承自QDialog,实现了服务器端的对话框显示与控制。其具体代码如下:(2)在源文件“tcpserver.cpp”中,TcpServer类的构造函数主要实现窗体各控件的创建、布局等,其具体代码如下:(3)服务器端界面如下图所示:以上完成了服务器端界面的设计,下面将详细完成聊天室的服务器端功能。(1)在工程文件“TcpServer.pro”中添加如下语句:QT += network(2)在工程“TcpServer.pro”中添加C++类文件“tcpclientsocket.h”及“tcpclientsocket.cpp”,TcpClientSocket 继承自QTcpSocket,创建一个TCP套接字,以便在服务器端实现与客户端程序的通信。
头文件“tcpclientsocket.h”的具体代码如下:(3)在源文件“tcpclientsocket.cpp”中,构造函数(TcpClientSocket)的内容(指定了信号与槽的
连接关系)如下:在源文件“tcpclientsocket.cpp”中,dataReceived()函数的具体代码如下:在源文件“tcpclientsocket.cpp”中,槽函数slotDisconnected()的具体代码如下:(4)在工程“TcpServer.pro”中添加C++类文件“server.h”及“server.cpp”,Server继承自QTcpServer,实现一 个TCP协议的服务器。利用QTcpServer,开发者可以监听到指定端口的TCP连接。其具体代码如下:(5)在源文件“server.cpp”中,构造函数(Server)的具体内容如下:其中,listen(QHostAddress::Any,port)在指定的端口对任意地址进行监听。
QHostAddress定义了几种特殊的IP地址,如QHostAddress::Null表示一个空地址;
QHostAddress::LocalHost表示IPv4的本机地址127.0.0.1;
QHostAddress::LocalHostIPv6表示IPv6的本机地址;
QHostAddress::Broadcast表示广播地址255.255.255.255;
QHostAddress::Any表示IPv4的任意地址0.0.0.0;
QHostAddress::AnyIPv6表示IPv6的任意地址。在源文件“server.cpp”中,当出现一个新的连接时,QTcpSever触发incomingConnection()函数,参数socketDescriptor指定了连接的Socket描述符,其具体代码如下:在源文件“server.cpp”中,updateClients()函数将任意客户端发来的信息进行广播,保证聊天室的所有成员均能看到其他人的发言。其具体代码如下:在源文件“server.cpp”中,slotDisconnected()函数实现从tcpClientSocketList列表中将断开连接的
TcpClientSocket对象删除的功能。其具体代码如下:(6)在头文件“tcpserver.h”中添加如下内容:(7)在源文件“tcpserver.cpp”中,在构造函数中添加如下代码:其中,槽函数slotCreateServer()用于创建一个TCP服务器,具体内容如下:槽函数updateServer()用于更新服务器上的信息显示,具体内容如下:(8)此时,工程中添加了很多文件,工程文件中的内容已经被改变,需要重新在工程文件
“TcpServer.pro”中添加:QT += network此时,运行服务器端工程“TcpServer.pro”编译通过。单击“创建聊天室”按钮,便开通了一个TCP聊天室的服务器,如下图所示:TCP客户端编程具体步骤如下:建立工程“TcpClient.pro”,文件代码如下。(1)在头文件“tcpclient.h”中,TcpClient类继承自QDialog类,声明了需要的各种控件,其具体代码如下:(2)源文件“tcpclient.cpp”的具体代码如下:(3)客户端界面如下图所示:以上完成了客户端界面的设计,下面将完成客户端的真正聊天功能。(1)在客户端工程文件“TcpClient.pro”中添加如下语句:QT += network(2)在头文件“tcpclient.h”中添加如下代码:(3)在源文件“tcpclient.cpp”中添加头文件:在其构造函数中添加如下代码:在以上代码中,槽函数slotEnter()实现了进入和离开聊天室的功能。具体代码如下:在源文件“tcpclient.cpp”中,槽函数slotConnected()为connected()信号的响应槽,当与服务器连接成功后,客户端构造一条进入聊天室的消息,并通知服务器。其具体代码如下:在源文件“tcpclient.cpp”中,槽函数slotSend()的具体代码如下:在源文件“tcpclient.cpp”中,槽函数slotDisconnected()的具体内容如下:当有数据到来时,触发源文件“tcpclient.cpp”的dataReceived()函数,从套接字中将有效数据取出并显示,其代码如下:(4)此时运行客户端“TcpClient.pro”工程,结果如下图所示:最后,同时运行服务器和客户端程序,运行结果如下图所示,这里演示的是系统中登录了两 个用户的状态。以上就是“QT基于TCP如何实现网络聊天室程序”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注百云主机行业资讯频道。
这篇文章主要介绍“javascript团购倒计时特效代码怎么写”,在日常操作中,相信很多人在javascript团购倒计时特效代码怎么写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”javascript团购倒计时特效代码怎么写”…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。