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
