QT QUdpSocket的连接判断以及错误显示

news/2024/5/19 1:49:38 标签: qt, signal, descriptor, string, socket, ui

if you need a socket, you have two options:


1.Instantiate QTcpSocket or QUdpSocket //实例化

2.Create a native socket descriptor, instantiate QAbstractSocket, and call setSocketDescriptor() to wrap the native socket.

Internally 1.在内部,内存 internally 1.在内(部) 2.内部的

QUdpSocket的连接两种方式:


1.void QAbstractSocket::connectToHost ( const QString & hostNamequint16 portOpenMode openMode = ReadWrite )

例:udpSocket->connectToHost("211.87.147.238",6666,QIODevice::ReadWrite);

 或udpSocket->connectToHost("example.com",6666,QIODevice::ReadWrite);


2.void QAbstractSocket::connectToHost ( const QHostAddress & addressquint16 portOpenMode openMode = ReadWrite )

例:

QHostAddress *hostaddr;
hostaddr= new QHostAddress("211.87.147.238");//主机IP

udpSocket->connectToHost(*hostaddr,6666,QIODevice::ReadWrite);


连接源代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QHostAddress>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    udpSocket=new QUdpSocket();
    //QHostAddress *hostaddr;
    //hostaddr= new QHostAddress("211.87.147.238");//主机IP

    connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(pushButton_clicked()));
    connect(udpSocket,SIGNAL(hostFound()),this,SLOT(hasfindhost()));//先查看host是否存在
    connect(udpSocket,SIGNAL(connected()),this,SLOT(hasconnected()));//判断如果连接上
    connect(udpSocket,SIGNAL(disconnected()),this,SLOT(hasnotconnected()));//如果断开连接
   
connect(udpSocket,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(erro()));//显示错误
}

MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::hasfindhost()
{
    qDebug()<<"HAS FOND HOST";
}
void MainWindow::hasconnected()
{
    qDebug()<<"has connected";
}
void MainWindow::hasnotconnected()
{
   qDebug()<<"has not connected";
}

void MainWindow::pushButton_clicked()
{   QString string=ui->lineEdit->text();
    udpSocket->connectToHost(string,6666,QIODevice::ReadWrite);

}
void MainWindow::erro()
{
    qDebug()<<"AN erro";
    QString string=udpSocket->errorString();//此处为错误打印
    qDebug()<<string;
}




http://www.niftyadmin.cn/n/1736332.html

相关文章

ARM启动代码学习(一)RO和RW还有ZI代表什么?(转载)

一般而言&#xff0c;一个程序包括只读的代码段和可读写的数据段。在ARM的集成开发环境中&#xff0c;只读的代码段和常量被称作RO段(ReadOnly)&#xff1b;可读写的全局变量和静态变量被称作RW段(ReadWrite)&#xff1b;RW段中要被初始化为零的变量被称为ZI段(ZeroInit)。对于…

Oracle EBS 通过API创建的供应商的采购订单无法计税

Oracle Applications : 12.1.3 通过API创建供应商、供应商地点和税详细信息,使用该供应商地点创建PO未计税。但是,手工创建的供应商地点和税详信息的PO就能够计税,二者对比是前端界面一模一样。 供应商->税详细信息->供应商地点>更新事务处理税 检查涉及税相关表如…

ubuntu11.10 系统下系统没有声音及Gentoo上的ALSA

今天ubuntu 11.10 下突然没了声音&#xff0c;结果sudo /sbin/alsa force-reload就解决问题了&#xff0c;但不知道为什么。 原文连接 点击打开链接 什么是ALSA   ALSA是Advanced Linux Sound Architecture&#xff0c;高级Linux声音架构的简称,它在Linux操作系统上提供了音…

qt 国际化tr()

QString QObject::tr ( const char * sourceText, const char * disambiguation 0, int n -1 ) [static] 但是实际上tr()函数是接受3个参数的。第一个参数是我们需要翻译的文字&#xff0c;如果使用qm文件有对应的字符串&#xff0c;则使用对应的字符串进行替换&#xff0…

LCD驱动调试中部分常见问题的分析及解决办法

LCD点不亮——无法正确完成初始化&#xff1a; LCD点不亮问题的原因有很多&#xff0c;但出现这个问题后&#xff0c;首先应该判断LCD是否正确完成初始化。最简单的判断方法就是测量LCM的FPC上的电容两端电压。&#xff08;具体的值可以和模组供应商沟通&#xff09; …

QT XML文件 修改节点

感谢&#xff1a;l270378034的帮助 源xml文件&#xff1a; <kdevelop><general><author>zeki</author><email>caizhimingtom.com</email></general> </kdevelop>源程序&#xff1a;#include "mainwindow.h" #incl…

init.rc分析

init.rc分析 1,init.rc是一个可配置的初始化文件,通常定制厂商可以配置额外的初始化配置&#xff0c;init.%PRODUCT%.rc 2,init.rc是在$GINGERBREAD/system/core/init/init.c中读取的,它基于“行”&#xff0c;包含一些用空格隔开的关键字&#xff08;它属于特殊字符&#xf…

QSqlDatabase: QMYSQL driver not loaded 解决方法

转自&#xff1a;点击打开原文链接虽然已执行&#xff1a; sudo apt-get install libqt4-sql-mysql&#xff0c;但还是出现QSqlDatabase: QMYSQL driver not loaded其实是驱动放的路径不对&#xff0c;应该放在QtSDK/Desktop/Qt/473/gcc/plugins下如果没有找到libqsqlmysql.so文…