title: Sending string via socket (python)
body: <p>I have two scripts, Server.py and Client.py. 
  I have two objectives in mind: </p>
  
  <ol>
  <li>To be able to send data again and again to server from client. </li>
  <li>To be able to send data from Server to client. </li>
  </ol>
  
  <p>here is my Server.py : </p>
  
  <pre><code>import socket
  
  serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  host = "192.168.1.3"
  port = 8000
  print (host)
  print (port)
  serversocket.bind((host, port))
  
  serversocket.listen(5)
  print ('server started and listening')
  while 1:
      (clientsocket, address) = serversocket.accept()
      print ("connection found!")
      data = clientsocket.recv(1024).decode()
      print (data)
      r='REceieve'
      clientsocket.send(r.encode())
  </code></pre>
  
  <p>and here is my client :   </p>
  
  <pre><code>#! /usr/bin/python3
  
  import socket
  
  s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  host ="192.168.1.3"
  port =8000
  s.connect((host,port))
  
  def ts(str):
     s.send('e'.encode()) 
     data = ''
     data = s.recv(1024).decode()
     print (data)
  
  while 2:
     r = input('enter')
     ts(s)
  
  s.close ()
  </code></pre>
  
  <p>The function works for the first time ('e' goes to the server and I get return message back), but how do I make it happen over and over again (something like a chat application) ?
  The problem starts after the first time. The messages don't go after the first time. 
  what am I doing wrong? 
  I am new with python, so please be a little elaborate, and if you can, please give the source code of the whole thing. </p>