TCP_Client客户端程序
程序员文章站
2022-07-14 23:49:17
...
简单实现了TCP客户端程序,界面如下图右侧,所示,左侧为网络调试助手,此为初版程序,后续进行程序的完善及界面的美化。
主要代码如下,详细的代码见附件。
main.cpp
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMainWindow>
#include <QTcpSocket>
#include<QString>
#include<QMessageBox>
int socket_status;
int server_port;
QString port_string;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
socket_status=0;
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_connect_btn_clicked()
{
//获取服务器的IP
QString server_ip =this->ui->IP_led->text();
//获取服务器的端口号的字符串
port_string=this->ui->port_led->text();
//将端口号转换成数字
server_port=port_string.toInt();
if(server_ip.isEmpty()||port_string.isEmpty())
{
QMessageBox::information(this,"错误","请输入服务器IP或端口号!");
}
else
{
tcp_socket = new QTcpSocket();
tcp_socket->abort();
socket_status=0;
//连接到服务器
tcp_socket ->connectToHost(server_ip,server_port);
socket_status=1;
connect(tcp_socket,SIGNAL(readyRead()),this,SLOT(Socket_read()));
}
}
void MainWindow::on_send_btn_clicked()
{
if(socket_status)
{
QString send_data=this->ui->input_led->text();
//发送信息
tcp_socket->write(send_data.toLatin1(),send_data.length());
}
}
void MainWindow::Socket_read()
{
QByteArray receive_data=tcp_socket->readAll();
this->ui->receive_tbs->setText(QVariant(receive_data).toString());
}
后面会继续更新,请关注!