南山网站设计泰安中文网站建设电话
Qt——tcp通讯
在上一节中,我们介绍了tcp的连接,这一节我们实现两者之前的消息发送与接收
ps:代码在上一节基础上添加
1.创建ui,并设计




2.代码编写
1.隐藏窗口
在客户端连接成功后,隐藏连接界面

2.显示新窗口
先去
widget.h包含一下<chat.h>头文件
1.由于函数结束局部变量会被释放,我们需要在堆上创建元素
2.为了在新窗口能继续使用原先用于连接的socket,我们需要修改构造函数,加入变量


运行结果:

3.发送和清除函数的编写
-
清除
void chat::on_clear_button_clicked() {ui->lineEdit->clear(); } -
发送(客户端)
void chat::on_send_button_clicked() {QByteArray info= ui->lineEdit->text().toUtf8();socket->write(info); }
4.服务端接收
只用在ui界面加一个lineEdit,用于存放客户端发送的数据
void Widget::newclientHandler()
{//建立tcp连接QTcpSocket *socket=server->nextPendingConnection();//显示ui->ip_line->setText(socket->peerAddress().toString());//获取客户端的ip地址,并显示在ip_line上ui->port_line->setText(QString::number(socket->peerPort()));//获取客户端端口号,并显示在port_line上connect(socket,&QTcpSocket::readyRead,this,&Widget::rec_slot);
}
void Widget::rec_slot()
{//获取信号发出者QTcpSocket * s=(QTcpSocket*)sender();ui->rec_line->setText(QString(s->readAll()));}
3.最终效果

