def recv(socket): """Receive a message from the socket. Returns a character string with the received payload. Returns None if the socket has been closed.""" try: len_byte = recvall(socket, 1) if len_byte == b'': return None else: data_len = int.from_bytes(len_byte, "big") data = recvall(socket, data_len) if len(data) != data_len: return None else: return data.decode('utf-8') except: return None
def Recv(self): #receive and decrypt data from server try: data = self._Crypto.Decrypt(recvall.recvall(self._con)) data = ast.literal_eval(codecs.decode(data)) # Sucess, Message , Data return data[0], data[1], data[2] except Exception as e: print("Socket data receive error") print(str(e)) return (False, "Conversion/Transfer Error" + str(e), [])
def Recv( self ): #Returns tuple of Sucess,Message,Data of which data may just be useless for that function try: data = self._Crypto.Decrypt(recvall.recvall(self._con)) data = ast.literal_eval(codecs.decode(data)) # Sucess, Message , Data return data[0], data[1], data[2] except Exception as e: print("Socket data receive error", e) return (False, "Conversion/Transfer Error" + str(e), [])
def recvfile(sock, file): if os.path.exists(file): os.remove(file) f = open(file, 'wb') file_size = recvall(sock, 8) recv_size = long(0) while recv_size < long(file_size): curr_size = recvall(sock, 8) if curr_size == "": break curr_size = long(curr_size) data = recvall(sock, curr_size) if data == "": break f.write(data) recv_size += curr_size f.closed
def Recv(self): data = recvall.recvall(self._con) data = ast.literal_eval(codecs.decode(data)) return data
insert = '** insert, 123, hostname, 0' updateHost = '** updateHostname,123,newName,1' updateWatch = '** updateWatch, 123, hostName, 1' delete = '** delete, 123, hostname, 0' select = "** select, 123, hostname, 0, SELECT * from ADDRESS_BOOK where MAC = '123' " deleteBad = '** delete, 123, hostname, 0, **' tooFew = "** ?,?" tooMany = "** 1,2,3 ,4,5,6" selectBad = '** select 123, hostname, 0' # Create a TCP/IP socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Connect the socket to the port where the server is listening server_address = ('kPi', 28801) print('connecting to %s port %s' % server_address) sock.connect(server_address) try: # Send data message = select print('sending "%s"' % message) sock.sendall(message.encode()) data = recvall(sock) print('recieved: {}'.format(data)) finally: print('closing socket') sock.close()