一、前言
Qt框架提供了QTcpServe和QTcpSocket两种类实现TCP协议的相关连接,TCP协议不再过多赘述,以下主要讲述自机服务器和自机客户端的连接实现TCP协议通信的具体方式。
二、基本功能介绍
使用Qt网络模块之前需要在.pro文件种加入network
服务器端
绑定端口,并通过信号判断新连入客户机,同时输出相关内容,同时通过断连信号进行客户端的删除。
收信功能绑定读取信号槽函数,对所带数据进行读取显示。
发信功能找到对应的客户机地址和端口进行发信
客户机端
连接端口
收信功能绑定读取信号槽函数
发信功能直接将发送数据写入设备
三、具体原理和代码实现
在.pro文件中加入network
QT += core gui network
初始化并分配指针空间
void Widget::Init()
{
myClient = new QTcpSocket(this);
}
服务器端实现
1.ui设计
搭建IP地址框和端口框Line Edit,信息接收框和发送框Tetx Edit,两个PushButton进行绑定和发送
2.IP绑定
通过listen方法指示服务器侦听地址、地址和端口端口上的传入连接。如果端口为 0,则自动选择端口。如果 address 为 QHostAddress::Any,则服务器将侦听所有网络接口。
setEnable设置按钮是否可以使用
setMaxPendingConnection设置最大挂起客户机数量
void Widget::on_btn_bind_clicked()
{
QString myAddr;
//手动设置ip
myAddr = ui->ledit_serv_addr->text();
QString myPort = ui->ledit_serv_port->text();
QString msg;
bool ret = myServer->