since it's not JUST receiving anymore, change the 'receiving' function to 'connection', make it a global-level function (not a method of any class), then pass in the socket and player object explicitly...

try this:
    threading.Thread(target=connection, args=[socket, player]).start()