UDP Server mit QUdpSocket
Verfasst: Samstag 6. Dezember 2025, 17:26
Hallo in die Runde,
ich versuche gerade eine Testanwendung zu bauen mit der ich per UDP im localen LAN kleine Befehle als String verschicken und empfangen kann.
der Client ist ein kleines Modul LAN <=> UART . Das Modul funktioniert - getestet mit einem Packetsender und einer alten Anwendung in Objektpascal.
... das habe ich als Beispiel mal probiert - und das funktioniert soweit
Nun möchte ich das ganze mit einer QT-Anwendung machen.
Wenn z.B. ein Datagramm vom Client kommt sollte ein event gefeuert werden.
Suche ein Beispiel bzw. Hilfe
Frank
ich versuche gerade eine Testanwendung zu bauen mit der ich per UDP im localen LAN kleine Befehle als String verschicken und empfangen kann.
der Client ist ein kleines Modul LAN <=> UART . Das Modul funktioniert - getestet mit einem Packetsender und einer alten Anwendung in Objektpascal.
... das habe ich als Beispiel mal probiert - und das funktioniert soweit
Code: Alles auswählen
import socket
localIP = "192.168.2.116"
localPort = 10005
bufferSize = 1024
msgFromServer = "Hello UDP Client"
bytesToSend = str.encode(msgFromServer)
# Create a datagram socket
UDPServerSocket = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM)
# Bind to address and ip
UDPServerSocket.bind((localIP, localPort))
print("UDP server up and listening")
# Listen for incoming datagrams
while True:
bytesAddressPair = UDPServerSocket.recvfrom(bufferSize)
message = bytesAddressPair[0]
address = bytesAddressPair[1]
clientMsg = "Message from Client:{}".format(message)
clientIP = "Client IP Address:{}".format(address)
print(clientMsg)
print(clientIP)
# Sending a reply to client
UDPServerSocket.sendto(bytesToSend, address)
Wenn z.B. ein Datagramm vom Client kommt sollte ein event gefeuert werden.
Code: Alles auswählen
#==============================================================================
# Hauptfenster der Anwendung
#==============================================================================
# Import Anweisungen ==========================================================
from PySide6.QtWidgets import QMainWindow
from ui_frm_main import Ui_FrmMain
from PySide6.QtNetwork import QUdpSocket, QHostAddress
# Implementierungen ===========================================================
class FrmMain(QMainWindow, Ui_FrmMain):
def __init__(self):
super().__init__()
self.setupUi(self)
self.Btn_send.clicked.connect(self.btn_senden) # Btn Daten senden
self.Btn_clear_tx.clicked.connect(self.btn_clear_edit_tx) # Btn TX Edit leeren
self.Btn_clear_rx.clicked.connect(self.btn_clear_edit_rx) # Btn RX Edit leeren
self.show()
self.udpSocket = QUdpSocket(self)
self.udpSocket.bind() <=== hier komme ich nicht weiter
# Btn Daten senden ========================================================
def btn_senden(self):
self.TextEdit_rx.setText("Hallo")
print("senden")
# Btn TX Edit leeren ======================================================
def btn_clear_edit_tx(self):
print("clear edit tx")
# Btn RX Edit leeren ======================================================
def btn_clear_edit_rx(self):
print("clear edit rx")
Frank