[code.view]

[top] / python / PyMOTW / socket / socket_echo_server_uds.py

     #!/usr/bin/env python
     # encoding: utf-8
     #
     # Copyright (c) 2010 Doug Hellmann.  All rights reserved.
     #
     """Server half of echo example, using Unix domain sockets
     """
     #end_pymotw_header
     
     import socket
     import sys
     import os
     
     server_address = './uds_socket'
     
     # Make sure the socket does not already exist
     try:
         os.unlink(server_address)
     except OSError:
         if os.path.exists(server_address):
             raise
     
     # Create a UDS socket
     sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
     
     # Bind the socket to the port
     print >>sys.stderr, 'starting up on %s' % server_address
     sock.bind(server_address)
     
     # Listen for incoming connections
     sock.listen(1)
     
     while True:
         # Wait for a connection
         print >>sys.stderr, 'waiting for a connection'
         connection, client_address = sock.accept()
         try:
             print >>sys.stderr, 'connection from', client_address
     
             # Receive the data in small chunks and retransmit it
             while True:
                 data = connection.recv(16)
                 print >>sys.stderr, 'received "%s"' % data
                 if data:
                     print >>sys.stderr, 'sending data back to the client'
                     connection.sendall(data)
                 else:
                     print >>sys.stderr, 'no more data from', client_address
                     break
                 
         finally:
             # Clean up the connection
             connection.close()
             
     

[top] / python / PyMOTW / socket / socket_echo_server_uds.py

contact | logmethods.com