title: Connecting admin client only recieves once
body: <p>When I run the admin client after connecting some clients, my admin returns the ip addresses and port numbers fine.  If i close the admin and rerun it nothing happens.  This has me baffled.  I am unsure why it is doing this</p>
  
  <pre><code>#Admin Client
  from functools import partial
  import ssl
  import socket
  
  s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  
  ts = ssl.wrap_socket(s, certfile="100298750.crt",
                          keyfile="100298750.key",
                          ca_certs="5cc515-root-ca.cer")
  
  ts.connect(('192.168.0.5', 4001))
  
  ts.send("Hello\r\n".encode())
  
  if ts.recv(80).decode() == "Admin-Greetings\r\n":
  
      print("The players currently online are:\n")
      ts.send("Who\r\n".encode())
  
  for data in iter(partial(ts.recv, 1000), b''):
      print(data.decode())
  ts.close()
  </code></pre>
  
  <p>Server</p>
  
  <pre><code>import threading
  import socket
  import math
  import random
  import ssl
  
  addressList = []
  
  def within(guess,goal,n):
      absValue = abs(guess - goal)
      if absValue &lt;= n:
          return True
      else:
          return False
  
  def HandleAdmin(adminSocket,):
      while True:
          global addressList
  
          (c,a) = adminSocket.accept() 
  
          ts = ssl.wrap_socket(c, certfile="5cc515_server.crt",
                                   keyfile="5cc515_server.key",
                                   server_side=True,
                                   cert_reqs=ssl.CERT_REQUIRED,
                                   ca_certs="5cc515-root-ca.cer")
  
          if ts.recv(80).decode() == 'Hello\r\n':
  
              ts.send('Admin-Greetings\r\n'.encode()) 
  
          if ts.recv(80).decode() == 'Who\r\n':
               for i in addressList:
                  ts.send(i.encode())
          ts.close()
          return
  
  def HandleClient(c,a):
      global addressList
      address, port = a
      address = str(address) + ' ' + str(port) + '\r\n'
      addressList.append(address)
  
      scoreCount = 0
      guess = 0
      if(c.recv(80).decode()) == 'Hello\r\n':
          c.send('Greetings\r\n'.encode())
  
          goal = random.randrange(1,21)
  
          while guess!= goal:
              guess =c.recv(80).decode()
              guess = int(guess[7:len(guess)-2])
  
              if guess == goal:
                  c.send('Correct\r\n'.encode())
                  addressList.remove(address)
                  c.close()
              elif within(guess, goal, 2) == True:
                  c.send('Close\r\n'.encode())
              else:
                  c.send('Far\r\n'.encode())
      else:
          c.close()
  
      return
  
  clientSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  clientSocket.bind(("192.168.0.5",4000))
  clientSocket.listen(5)
  
  adminSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  adminSocket.bind(("192.168.0.5",4001))
  adminSocket.listen(5)
  
  handleAdminThread = threading.Thread(target = HandleAdmin,
                                              args = (adminSocket,))
  handleAdminThread.start()
  
  while True:
      (c,a) = clientSocket.accept()
      clientThread = threading.Thread(target = HandleClient, args = (c,a))
      clientThread.start()
  </code></pre>