Qt中tcp 服务器客户机开发思路

TCP编程需要用到两个类:
1、QTcpServer-----用来实现服务器的 监听。
2、QTcpSocket------实现 套节字 类, 有消息的封装,可以读取和写入。

pro文件中加入QT += core gui network

服务器:
QTcpSocket
QTcpServer 两个头

1、开启服务器:QTcpServer对象,用listen()方法;
tcpServer->listen(QHostAddress::LocalHost,ui->lineEdit_port->text().toUInt()) //listen(QHostAddress::Any,8888)

2、当有客户端连接到服务器时,系统会接收到newConnection信号,需要在对应的槽函数中获取用于通信的套接字(QTcpServer的nextPendingConnection()函数获取套接字)。
tcpSocket = tcpServer->nextPendingConnection();

3、客户端有数据过来,则会产生一个readyRead信号,从对应的槽函数中通过套接字的readAll()等相关函数读取数据。
buf = QString(tcpSocket->readAll());

4、通过套接字的write()函数向客户端发送数据。
tcpSocket->write(ui->lineEdit_send->text().toLocal8Bit().data());

客户端:
1、创建QTcpSocket对象,并用connectToHost()函数通过IP和端口号连接服务器。
tcpSocket = new QTcpSocket(this);
tcpSocket->connectToHost(ui->lineEdit_ip->text(),ui->lineEdit_port->text().toUInt());

2、客户端成功连接上服务器,系统会产生connected信号。(所以需要将信号和槽函数进行绑定)
connect(tcpSocket,SIGNAL(connected()),this,SLOT(connected_slot()));

3、客户端收到服务器发送来的数据,会产生readyRead信号,在connected信号对应的槽函数中,将readyRead信号和对应的槽函数进行绑定。
connect(tcpSocket,SIGNAL(readyRead()),this,SLOT(readyRead_slot()));

4、通过套接字对象读取服务器发来的数据。(用readall()等函数)
tcpSocket->readAll();

5、通过套接字向服务器发送数据。(用write()函数)
tcpSocket->write(ui->lineEdit_send->text().toLocal8Bit().data());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值