"""A simple UDP server. The first byte received indicates how many bytes are in the application payload. These are displayed in hexadecimal.""" __author__ = 'Josiah Yoder, Phileas Fogg' import socket print 'Starting udpserver.py' server_name = 'localhost' server_port = 12000 server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) server_socket.bind((server_name,server_port)) message,clientAddress = server_socket.recvfrom(2048) first_byte = ord(message[0]) print 'from {0}, received first byte {1:02x}'.format(clientAddress,first_byte) if len(message) < first_byte+1: raise Exception('Message has invalid format: Header specifies {0} ' 'bytes, but only {1} bytes found'.format(first_byte,len(message))) print 'Message length:',len(message) for i in range(0,first_byte): print 'payload byte {0}: {1:02x}'.format(i,ord(message[i+1]))