Ja, ich weiß UDP schlecht, aber leider habe ich keine andere Wahl - mein Server nimmt nur UDP ...Python - Senden von Hex-Array über UDP
Was ich habe, ist eine Liste, die Hex-Werte enthält, müssen die schicken aus UDP.
Wenn ich versuche, und senden Sie die Liste, die ich bekommen - ‚Typeerror: muss String oder Puffer sein, nicht auflisten‘
Wenn ich auf einen String (genannt aList in meinem Code) konvertiere ich bekommen - ‚Typeerror : eine ganze Zahl ist erforderlich‘ Drucke von aList = 09004000e3f00005f5
wenn ich aList in einen int mit Basis 16 ich konvertieren - ‚Typeerror: muß String oder Puffer, nicht lang‘seine
Grund vermutet, es ist etwas, aber ich vermisse es.
Einfache Code wie folgt aussieht ::
import socket #for sockets
UDP_PORT = 21105;
UDP_HOST = '10.194.34.151';
z21 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
def _getLocoInfo (id):
arr = [ 0x09, 0x00, 0x40, 0x00, 0xE3, 0xF0, 0x00, id]
arr.append(arr[5]^arr[6]^arr[7])
return arr
msg = _getLocoInfo(0x05)
aList = "".join("%02x" % b for b in msg)
print (a)
try :
z21.send(msg ,(UDP_HOST, UDP_PORT))
# receive data from client (data, addr)
d = s.recvfrom(1024)
print ('Server reply : ' + reply)
except socket.error as e:
print ('Error Code : ' + str(e[0]) + ' Message ' + e[1])
sys.exit()
Verwenden Sie Python 2 oder 3? – jython234