예제 #1
0
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
예제 #2
0
 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), [])
예제 #3
0
 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), [])
예제 #4
0
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
예제 #5
0
 def Recv(self):
     data = recvall.recvall(self._con)
     data = ast.literal_eval(codecs.decode(data))
     return data
예제 #6
0
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()