title: Python sockets - keep socket alive?
body: <p>I'm having a little trouble with sockets in Python. Whenever someone connects it works fine but if they disconnect the server program closes. I want the server program to remain open after the client closes. I'm using a while True loop to keep the connection alive but once the client closes the connection the server closes it's connection.</p>
  
  <p>Here is the client:</p>
  
  <pre><code>import socket, sys
  conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  host = sys.argv[1]
  port = int(sys.argv[2])
  conn.connect((host, port))
  
  print("Connected to host " + sys.argv[1])
  td = 1
  while td == 1:
     msg = raw_input('MSG:  ')
  </code></pre>
  
  <p>Here is the server:</p>
  
  <pre><code>import socket, sys
  
  socket.setdefaulttimeout(150)
  host = ''               
  port = 50005
  socksize = 1024
  
  s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  s.bind((host, port))
  print("Server started on port: %s" % port)
  s.listen(1)
  print("Now listening...\n")
  conn, addr = s.accept()
  
  while True:
      print 'New connection from %s:%d' % (addr[0], addr[1])
      data = conn.recv(socksize)
      if not data:
          break
      elif data == 'killsrv':
          conn.close()
          sys.exit()
      else:
         print(data)
  </code></pre>