All pastes #345951 Raw Edit

Mine

public text v1 · immutable
·published 2007-02-08 23:18 UTC
rendered paste body
#-*-coding:utf8-*-
import socket
import select

class pyimdev:
    def __init__(self,port):
        self.port       = port

        self.serversock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        self.serversock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
        self.serversock.bind(("",port))
        self.serversock.listen( 5 )

        self.descriptors= [self.serversock]
        print "Chatserver Started on port %s" % port

    def run(self):
        while 1:
            (sread,swrite,sexc) = select.select(self.descriptors,[],[])
            for sock in sread:
                if sock == self.serversock:
                    self.acceptnewconn()
                else:
                    str = sock.recv(100)

                if str == '':
                    host,port = sock.getpeername()
                    str = "Kullanıcı Ayrıldı %s:%s\r\n" % (host,port)
                    self.switcher(str,sock)
                    sock.close
                    self.descriptors.remove(sock)
                else:
                    host,port = sock.getpeername()
                    newstr = '[%s:%s] %s' % (host,port,str)
                    self.switcher(newstr,sock)


    def switcher(self,str,omit_sock):
        for sock in self.descriptors:
            if sock != self.serversock and sock != omit_sock:
                sock.send(str)

        print str,

    def acceptnewconn(self):
        newsock,(remhost,remport) = self.serversock.accept()
        self.description.append(newsock)

        newsock.send("Py Im Dev Sunucusuna bağlandınız\r\n")
        str = "Kullanıcı Bağlandı : %s:%s\r\n" % (remhost,remport)
        self.switcher(str,newsock)

 
server = pyimdev(2918)
server.run()