服务器要一处于监听状态
客户端主动连接服务器
服务器的ui界面
客户端的ui界面
很简陋
服务端listen 按钮的槽函数
QHostAddress::Any,port 监听任何端口
void MainWindow::on_listen_clicked()
{
if(ui->lineEdit->text().isEmpty())
{
return ;
}
int port = ui->lineEdit->text().toInt(); //获取liNe edit中的内容
bool flag = mserver->listen(QHostAddress::Any,port);//listen 返回值为bool
if(flag)
{
QMessageBox::information(this,"NULL","成功");
}
else
{
QMessageBox::critical(this,"NULL","失败");
}
}
客户端的连接槽函数
用户往textedit 中写入内容 连接主机 可以把主机地址设为自己的ip地址
连接成功后就不再使用连接按钮
void Widget::on_connect_clicked()
{
msocket = new QTcpSocket;
//连接服务器
if(ui->ipedit->text().isEmpty() || ui->portedit->text().isEmpty())
{
return ;
}
//获取填写的ip和端口号
QString ipaddress = ui->ipedit->text(); //text(); 返回值为string
int port = ui->portedit->text().toInt();
//主机地址
msocket->connectToHost(QHostAddress(ipaddress),port);//连接主机
connect(msocket,&QTcpSocket::connected,this,[this](){
QMessageBox::information(this," ","连接成功");
ui->connect->setEnabled(false); //禁用按钮
//连接成功就不用在点了
});
}