title: Python sockets error TypeError: a bytes-like object is required, not 'str' with send function
body: <p>I am trying to create a program that will open a port on the local machine and let others connect into it via netcat. My current code is.</p>
  
  <pre><code>s = socket.socket()
  host = '127.0.0.1'
  port = 12345
  s.bind((host, port))
  
  s.listen(5)
  while True:
      c, addr = s.accept()
      print('Got connection from', addr)
      c.send('Thank you for connecting')
      c.close()
  </code></pre>
  
  <p>I am new to Python and sockets. But when I run this code it will allow me to send a netcat connection with the command:</p>
  
  <pre><code>nc 127.0.0.1 12345
  </code></pre>
  
  <p>But then on my Python script I get the error for the c.send:</p>
  
  <pre><code>TypeError: a bytes-like object is required, not 'str'
  </code></pre>
  
  <p>I am basically just trying to open a port, allow netcat to connect and have a full shell on that machine.</p>