Browse Source

Primitive UDP Protocole

master
Hatef 3 years ago
commit
f010f6dbe4
  1. 2
      .gitignore
  2. 36
      UDP.pro
  3. 16
      main.cpp
  4. 34
      socket.cpp
  5. 26
      socket.h

2
.gitignore

@ -0,0 +1,2 @@
*.pro.user
Tesp_Script.cpp

36
UDP.pro

@ -0,0 +1,36 @@
QT += core
QT += network
QT -= gui
TARGET = UDP
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
CONFIG += c++11 console
CONFIG -= app_bundle
# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
Tesp_Script.cpp \
main.cpp \
socket.cpp
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
HEADERS += \
socket.h

16
main.cpp

@ -0,0 +1,16 @@
#include <QCoreApplication>
#include "socket.h"
int main(int argc, char* argv[])
{
QCoreApplication a(argc, argv);
UDP_Socket server;
UDP_Socket client;
client.SayHello();
server.SayHello();
client.SayMsg("Msg");
return a.exec();
}

34
socket.cpp

@ -0,0 +1,34 @@
#include "socket.h"
UDP_Socket::UDP_Socket(QObject* parent) :
QObject(parent)
{
socket = new QUdpSocket(this);
socket->bind(QHostAddress::LocalHost, 1234);
connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead()));
}
void UDP_Socket::SayHello()
{
SayMsg("Connected :))");
}
void UDP_Socket::SayMsg(QString a)
{
QByteArray Data;
Data.append(a);
socket->writeDatagram(Data, QHostAddress::LocalHost, 1234);
}
void UDP_Socket::readyRead()
{
QByteArray Buffer;
Buffer.resize(socket->pendingDatagramSize());
QHostAddress sender_addr{};
quint16 sender_port{};
socket->readDatagram(Buffer.data(), Buffer.size(), &sender_addr, &sender_port);
qDebug() << "Message from :" << sender_addr.toString();
qDebug() << "Port : " << sender_port;
qDebug() << "Content : " << Buffer;
}

26
socket.h

@ -0,0 +1,26 @@
#ifndef UDP_Socket_H
#define UDP_Socket_H
#include <QObject>
#include <QUdpSocket>
class UDP_Socket : public QObject
{
Q_OBJECT
public:
explicit UDP_Socket(QObject* parent = nullptr);
void SayHello();
void SayMsg(QString a);
signals:
public slots:
void readyRead();
private:
QUdpSocket* socket;
};
#endif //UDP_Socket_H
Loading…
Cancel
Save