title: Python TCP sockets headers
body: <p>I need to create a communication between a client and a server with TCP. But I'd like to send and work with "headers". So from the client I'd like to send a header "COMMAND1" and the server returns me something.</p>
  
  <p>I have the following code:</p>
  
  <p>Server</p>
  
  <pre><code>import socket
  import threading
  
  bind_ip = '0.0.0.0'
  bind_port = 9998
  
  server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  server.bind((bind_ip, bind_port))
  server.listen(5)  # max backlog of connections
  
  print ('Listening on {}:{}'.format(bind_ip, bind_port))
  
  
  def handle_client_connection(client_socket):
      request = client_socket.recv(1024)
      print ('Received {}'.format(request))
      client_socket.send('Response1!'.encode('utf-8'))
      client_socket.close()
  
  while True:
      client_sock, address = server.accept()
      print ('Accepted connection from {}:{}'.format(address[0], address[1]))
      client_handler = threading.Thread(
          target=handle_client_connection,
          args=(client_sock,)  # without comma you'd get a... TypeError: handle_client_connection() argument after * must be a sequence, not _socketobject
      )
      client_handler.start()
  </code></pre>
  
  <p>Client</p>
  
  <pre><code>import socket
  
  hostname, sld, tld, port = 'www', 'integralist', 'co.uk', 80
  target = '{}.{}.{}'.format(hostname, sld, tld)
  
  # create an ipv4 (AF_INET) socket object using the tcp protocol (SOCK_STREAM)
  client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  
  # connect the client
  # client.connect((target, port))
  client.connect(('0.0.0.0', 9998))
  
  # send some data (in this case a HTTP GET request)
  client.send('hi'.encode('utf-8'))
  
  # receive the response data (4096 is recommended buffer size)
  response = client.recv(4096)
  
  print (response)
  </code></pre>
  
  <p>Anyone knows the best way to return "Response1!" when the header is "COMMAND1" and "Response2!" when the header is "COMMAND2"?</p>
  
  <p>I can't find examples on how to use headers</p>
  
  <p>EDIT: It doesn't have to be "COMMAND1" or "COMMAND2" it can be a "0" or "1", or anything else.</p>