All pastes #59915 Raw Edit

Anonymous

public text v1 · immutable
#59915 ·published 2006-05-30 13:33 UTC
rendered paste body
import asyncore, asynchat
import os, socket, string

PORT = 8100

class SOCKETChannel(asynchat.async_chat):
    data = ""

    def __init__(self, server, sock, addr):
        asynchat.async_chat.__init__(self, sock)
        self.set_terminator("\n")

    def collect_incoming_data(self, data):
        SOCKETChannel.data = SOCKETChannel.data + data

    def found_terminator(self):
        self.push(SOCKETChannel.data)

class SOCKETServer(asyncore.dispatcher):

    def __init__(self, port):
        asyncore.dispatcher.__init__(self)
        self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
        self.bind(("", port))
        self.listen(5)

    def handle_accept(self):
        conn, addr = self.accept()
        SOCKETChannel(self, conn, addr)

#
# try it out

s = SOCKETServer(PORT)
print "serving at port", PORT, "..."
asyncore.loop()