#!/usr/bin/env python # encoding: utf-8 # # Copyright (c) 2010 Doug Hellmann. All rights reserved. # """Sending Unicode data over a socket. """ #end_pymotw_header import sys import SocketServer class Echo(SocketServer.BaseRequestHandler): def handle(self): # Get some bytes and echo them back to the client. data = self.request.recv(1024) self.request.send(data) return if __name__ == '__main__': import codecs import socket import threading address = ('localhost', 0) # let the kernel give us a port server = SocketServer.TCPServer(address, Echo) ip, port = server.server_address # find out what port we were given t = threading.Thread(target=server.serve_forever) t.setDaemon(True) # don't hang on exit t.start() # Connect to the server s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((ip, port)) # Send the data text = u'pi: π' len_sent = s.send(text) # Receive a response response = s.recv(len_sent) print repr(response) # Clean up s.close() server.socket.close()