qt TCP通信

本文详细介绍了如何在QT环境中实现TCP和UDP协议的通信。通过QTcpServer和QTcpSocket类,展示了TCP服务端和客户端的数据收发流程,包括信号与槽的使用,以及连接和断开操作。对于UDP协议,同样演示了数据的发送和接收过程。这些基础知识对于理解网络编程和构建基于QT的应用至关重要。
摘要由CSDN通过智能技术生成

TCP: 传输数据协议,可靠、面向连接。面向数据流的传输协议,适合数据的大量、连续的传输。。许多高层协议(http ftp)底层使用TCP。

UDP:用户数据报协议,简单轻量、不可靠、面向数据报、无连接的传输层协议

TCP协议的传输,一般要求先启动服务端,在启动客户端

TCPServer

主要使用两个信号
readyRead() //接收数据时,有数据的到来发出的信号
disconnected() //断开连接时产生的信号
服务端需要监听套接字和通信套接字

监听套接字:

QTcpServer *tcpServer = new QTcpServer (this);
tcpServer ->listen(QHostAddress::Any,port);

//通信套接字:
QTcpSocket *tcpsocket = new QTcpSocket(this);
connect(tcpServer,&QTcpServer::newConnection,[=]()
{
tcpsocket = tcpServer->nextPendingConnection();//取出建立的套接字
QString ip = tcpsocket->peerAddress().toString();
qint16 port = tcpsocket->peerPort();//获取对方的ip和端口
//显示对方发来的信息
connect(tcpsocket,&QTcpSocket::readyRead,=
{
QByteArray array = tcpsocket->readAll();
});
});
发送数据:
tcpsocket->write(str.toUtf8().data());
tcpclient->disconnectFromHost(); //主动断开连接
tcpclient->close();

TCPCilent

QTcpSocket *tcpclient = new QTcpSocket(this);
//接收
connect(tcpclient,&QTcpSocket::readyRead,=
{
QByteArray array = tcpclient->readAll(); //获取对方发送的数据
});

//发送
tcpclient->connectToHost(QHostAddress(ip),port);//主动与服务器建立连接
tcpclient->write(str.toUtf8().data()); //发送数据
tcpclient->disconnectFromHost(); //主动断开连接
tcpclient->close();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值