import socket import sys from struct import * # import * def ConnectWithRouter(host): port = 3450 sockobj = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: sockobj.connect((host,port)) except: return False, "Fehler beim Verbindungsaufbau" else: return True, sockobj def DCECommand(fromDevice,socket): message = "EVENT " + str(fromDevice) + "\n" print message print type(socket) socket.send(message) print "message send" try: data = socket.recv(1024) except: print data else: if data == "OK\n": return True else: print data return False def SendBigBlob(blob,socket): blobsize = len(blob) # try: socket.send("MESSAGET ") socket.send(str(blobsize)) socket.send("\n") socket.send(blob) socket.send("\n") # except: # print "error sending big blob" server = "dcerouter" magicNumber = 1234 deviceFromId = 78 # Oliver's phone returnvalue = ConnectWithRouter(server) if (returnvalue[0]): print "Erfolg" dcerouter = returnvalue[1] returnvalue = DCECommand(deviceFromId, dcerouter) else: print returnvalue[1] returnvalue = False if (returnvalue): print "Erfolg mit DCECommand" else: print "Kein Erfolg mit DCECommand" deviceToId = 10 # Media plugin deviceGroupToId = 0 # no specific device group. messageId = 43 # MH_Play_File (see Advanced / DCE / Commands for more) messagePriority = 1 # PRIORITY_LOW=0, PRIORITY_NORMAL=1, PRIORITY_HIGH=2, PRIORITY_URGENT=3 messageType = 1 # MESSAGETYPE_COMMAND=1, MESSAGETYPE_EVENT=2, MESSAGETYPE_DATAPARM_CHANGE=3, MESSAGETYPE_REPLY=4, MESSAGETYPE_DATAPARM_REQUEST=5, MESSAGETYPE_LOG=6, MESSAGETYPE_SYSCOMMAND=7, MESSAGETYPE_REGISTER_INTERCEPTOR=8, MESSAGETYPE_MESSAGE_INTERCEPTED=9, MESSAGETYPE_EXEC_COMMAND_GROUP=10, MESSAGETYPE_START_PING=11, MESSAGETYPE_STOP_PING=12, MESSAGETYPE_PURGE_INTERCEPTORS=13, MESSAGETYPE_PENDING_TASKS=14 deviceCategoryTo = 0 # no specific category deviceTemplateTo = 0 # no specific template includeChildren = 0 # we don't care about children messageBroadcastLevel = 0 # BL_None=0, BL_DirectSiblings=1, BL_SameComputer=2, BL_SameRoom=3, BL_SameHouse=4, BL_AllHouses=5 messageRetry = 0 # MR_None=0, MR_Retry=1, MR_Persist=2 relativeToSender = 0 # not relative to sender expectedResponse = 0 # delivery confirmation deviceListTo = "" # no specific list of devices to send stuff to. blobheader = pack("9LBLLBL0s",magicNumber, deviceFromId, deviceToId, deviceGroupToId, messageId, messagePriority, messageType, deviceCategoryTo, deviceTemplateTo, includeChildren, messageBroadcastLevel, messageRetry, relativeToSender, expectedResponse, deviceListTo) # SendHeader(blob,dcerouter) parameter1ID = 13 # filename parameter1Content = "/home/public/data/samples/security/security.mpg" parameter2ID = 45 # Entertainment Area parameter2Content = "2" blobbody = pack("LL"+str(len(parameter1Content))+"sL1sL",2,parameter1ID,parameter1Content,parameter2ID,parameter2Content,0) #SendBody(blob,dcerouter) blobfooter = pack("L",6789) #SendFooter(blob,dcerouter) blobsize = len(blobheader)+len(blobbody)+len(blobfooter) print "blobsize mit drei mal calcsize" print blobsize bigblob = blobheader+blobbody+blobfooter print "blobsize mit bigblob" print len(bigblob) bigblob = "78 10 1 43 13 \"/home/public/data/samples/security/security.mpg\" 45 2" delimiter = " " bigblob = delimiter.join(sys.argv[1:]) SendBigBlob(bigblob,dcerouter) print "big blob:" print bigblob