Ich empfange über einen UDP Server von einem in C geschriebenen UDP Client. Beim Empfang hab ich jedoch immer Leerlaufzeiten in welchen nichts passiert. Dann empfängt er wieder einen Block von Daten. Auch wenn ich einen Python UDP Client zum Senden der Daten hernehm bleibt das Problem bestehen. Anbei der Code des UDP Servers:
Code: Alles auswählen
import socket
import sys
#Initialisierung der benötigten Variablen
host = "" #Adresse des Servers
port = 8856 #Portan welchem Daten empfangen werden
buf = 4096 #Maximale Groesse der Daten
data = "" #Zum Speichern der zu empfangenden Daten
def main():
#Initialisierung und binden des Sockets
addr = (host, port) #Adresse an welche Daten geschickt werden
UDPSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
UDPSock.bind(addr)
print 'UDP Server gestartet. Empfangsbereit'
i = j = 0
#Daten empfangen
while (1):
data = ""
print 'Warte auf Daten'
data, addr = UDPSock.recvfrom(buf)
if data == "":
print 'Keine Daten empfangen'
else:
Datatype = type(data)
print data
#Nach 10000 empfangenen Datenpaketen Abbruch.
if j > 10000:
break
print "Durchlaufnummer:", j
j += 1
#Socket schließen
UDPSock.Close()
if __name__ == '__main__':
main()