TCP (Transmission Control Protocol) 传输控制协议 . 面向连接和数据流的可靠传输协议 .
使用的是客户端 / 服务器模式 ….
在 QT 中 用 QTcpSocket 来编写客户端程序 , 用 QTcpServer 来编写服务器端程序 ….
我们通过 QTcpServer 的 listen(QHostAddress::Any,port) 函数来进行端口的监听 , 一旦发现客户端的连接请求 , 就会发出 newConnection() 信号 … 这样绑定上相应的槽函数就可以进行数据的发送了 ….
客户端 QTcpSocket 一旦有数据到来就会发出 readyRead() 信号 , 我们可以关联此信号进行数据的接收 …
Tcp 连接示例图 :
下面举一个小例子 , 来实现服务器端到客户端的连接 …
服务器端的实现 :
客户端的实现 :
QTcpServer 与 QTcpStock 之间的工作原理是这样的 ...
首先由 QTcpServer 创建 一个监听 listen(hostAddress,port) ... 这样就对此 prot 进行了监听 ....
然后启动客户端的连接 connectToHost(hostAddress,port).... 当服务器端接收到 客户端的连接时 , 首先会触发 QTcpServer 的
incomingConnection( int socketDescriptor ) 消息 ... 这时就可以将当前连接的客户端的 ID 号加入到服务器端的客户端列表里进行维护了 ...( 不知道这样理解对不对 ???)
当客户端发送消息到服务器端时 .. 就会触发 QTcpServer 的 updateClients() 消息 ... 然后服务器通过发送 updateServer() 消息通知服务器端更新信息 ... 然后再通过已有的客户端列表 , 向已连接的客户端写回信息 ... 这时就会触发客户端的 readMessage() 函数 ... 将接收到的消息显示在客户端 ...