关于QT socket 编程

第一个验证:创建TCP服务器

要求:    
            1、能够监听指定端口的 数据信息;    
            2、能够检测到有新的客户端建立连接;

            3、能够检测到客户端的断开;
            4、能够检测到接收到的客户端的数据;

            5、能够发送数据到指定的客户端;

测试开始:

1、头文件

#include <QTcpSocket>
#include <QTcpServer>
2、初始化服务器
mytcpServer = new QTcpServer();

3、连接客户端

connect(mytcpServer, SIGNAL(mytcpServer->newConnection()), this, SLOT(this->newClient()));
4、启动监听
mytcpServer->listen(QHostAddress::Any, port);
调试中发现,有如下提示:

看了QTcpServer头文件,里面是包含有newConnection()这个信号量的。该怎么处理呢?

mytcpServer->删掉就可以了了,这里是相同的问题this->newClient(),删掉this->

5、接收数据和发送数据

 //可以实现同时读取多个客户端发送过来的消息
    QTcpSocket *obj = (QTcpSocket*)sender();
    QString msg = obj->readAll();
    //qDebug()<<msg;
    ui->receiveTextEdit->append(msg);
    obj->write("567");

6、断开网络的IP地址

void MainWindow::clientDisconnected()
{
    QTcpSocket *obj = (QTcpSocket*)sender();//掉线对象
    //qDebug()<<obj->peerAddress().toString();//打印出掉线对象的ip
    ui->receiveTextEdit->append(obj->peerAddress().toString());
}
tcpSocket->abort(); //这条命令可以y用来断开网络连接

7、获取链接到本server的客户端的IP地址及端口号

tcpSocket->peerAddress().toString();      //获取的IP如:“::ffff:192.168.1.130”这样的格式
tcpSocket->peerPort();                    //获取客户端的端口号
tcpSocket->peerAddress().toIPv4Address(); //获取IPV4格式的IP地址3232235906。(就是上面的192.168.1.130)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值