title: Read and write from Unix socket connection with Python
body: <p>I'm experimenting with Unix sockets using Python. I want to create a server that creates and binds to a socket, awaits for commands and sends a response.</p>
  
  <p>The client would connect to the socket, send one command, print the response and close the connection.</p>
  
  <p>This is what I'm doing server side:</p>
  
  <pre><code># -*- coding: utf-8 -*-
  import socket
  import os, os.path
  import time
  from collections import deque    
  
  if os.path.exists("/tmp/socket_test.s"):
    os.remove("/tmp/socket_test.s")    
  
  server = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
  server.bind("/tmp/socket_test.s")
  while True:
    server.listen(1)
    conn, addr = server.accept()
    datagram = conn.recv(1024)
    if datagram:
      tokens = datagram.strip().split()
      if tokens[0].lower() == "post":
        flist.append(tokens[1])
        conn.send(len(tokens) + "")
      else if tokens[0].lower() == "get":
        conn.send(tokens.popleft())
      else:
        conn.send("-1")
      conn.close()
  </code></pre>
  
  <p>But I get <code>socket.error: [Errno 95] Operation not supported</code> when trying to listen.</p>
  
  <p>Do unix sockets support listening? Otherwise, what would be the right way for both reading and writing?</p>
  
  <p>Any help appreciated :)</p>