import asyncore import socket import bz2 clients = {} class MainServerSocket(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): newSocket, address = self.accept( ) clients[address] = newSocket newSocket.send(bz2.compress("Connection Accepted 10 4")) print "Connected from", address SecondaryServerSocket(newSocket) class SecondaryServerSocket(asyncore.dispatcher_with_send): def handle_read(self): receivedData = self.recv(8192) if receivedData: print receivedData every = clients.values() for one in every: if not str(one) == str(self): one.send(receivedData+'\n') else: self.close( ) def handle_close(self): print "Disconnected from", self.getpeername( ) one = self.getpeername( ) del clients[one] MainServerSocket(9999) asyncore.loop( )
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question