大佬教程收集整理的这篇文章主要介绍了网络通讯之TCP协议实用案例,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在了解TCP协议之前c;我们应该知道5层因特网协议栈和7层ISO OSI模型c;而TTCP协议位于网络的传输层中。TCP协议是什么?是一种面向连接的、可靠的传输协议c;其最主要的特点即为三次握手以及四次挥手c;为什么是三次握手而不是四次挥手?原因是在于为了防止已失效的请求报文又传到服务器而引起错误c;本质上是为了解决网络信道不可靠的问题c;也是该协议可靠连接的体现。
创建服务器类和客户端类
如下图所示c;服务器端通过QTcpServer类进行监听c;通过QTcpSocket套接字进行连接客户端c;客户端与服务器建立连接后c;服务器监听到信号后c;会与客户端建立连接c;此时服务器和客户端之间就可进行读写数据了!
首先实例化对象c;并进行监听c;在这里我监听的是本地的IP地址
ui->setupUi(this);
setWindowtitle("服务器端");
ui->lineEdit->setText("127.0.0.1");
ui->lineEdit_3->setText("9999");
socket =new QTcpSocket(this);
Server =new QTcpServer(this);
Server->listen(QHostAddress(ui->lineEdit->text()),ui->lineEdit_3->text().toInt()); //监听
当新的连接来到时c;收发信号触发槽函数并进行数据的读取和写入
//当新的连接到来时c;收到信号触发槽函数
connect(Server,&QTcpServer::newConnection,this,[=](){
//接收客户端的套接字对象
socket=Server->nextPendingConnection();
ui->textBrowser->setText("已连接上!n");
connect(socket,&QTcpSocket::readyRead,this,[=](){
//接受对象
QByteArray array = socket->readAll();
//把接收到的对象放到记录里面
ui->textBrowser->append("客户端:"+array);
});
});
// //关闭连接
// socket->disconnectFromHost();
// //关闭设备
// Server->close();
客户端的与之类似c;完整代码如下:
ui->setupUi(this);
socket = new QTcpSocket(this);
ui->lineEdit->setText("127.0.0.1");
ui->lineEdit_3->setText("9999");
setWindowtitle("客户端");
socket->connectToHost(QHostAddress(ui->lineEdit->text()),ui->lineEdit_3->text().toInt());
connect(socket,&QTcpSocket::readyRead,this,[=](){
//接受对象
QByteArray array = socket->readAll();
//把接收到的对象放到记录里面
ui->textBrowser->append("服务器端:"+array);
});
connect(ui->pushButton,&QPushButton::clicked,this,[=](){
socket->write(ui->lineEdit_2->text().toUtf8());
ui->textBrowser->append("客户端:"+ui->lineEdit_2->text());
ui->lineEdit_2->clear();
});
以上是大佬教程为你收集整理的网络通讯之TCP协议实用案例全部内容,希望文章能够帮你解决网络通讯之TCP协议实用案例所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。