Esempio n. 1
0
 def __init__(self, family=AF_INET, type=SOCK_STREAM, proto=0, app=None):
     self.app = None
     self.blocking = True
     self.stack = PyStack()
     if family not in (AF_INET, AF_INET6, AF_UNIX):
         raise error("Address family not supported by protocol " + family)
     else:
         self.family = family
     if type not in (SOCK_DGRAM,
                     SOCK_STREAM):  #SOCK_RAW, SOCK_RDM, SOCK_SEQPACKET):
         raise error("Invalid argument " + type)
     else:
         self.type = type
         if app:
             self.app = app
         else:
             if type == SOCK_STREAM:
                 self.app = _TCPSocket()
             elif type == SOCK_DGRAM:
                 self.app = _UDPSocket()
     self.proto = proto
     if not app:
         if type == SOCK_STREAM:
             self.stack.register_tcp_application(self.app)
         elif type == SOCK_DGRAM:
             self.stack.register_udp_application(self.app)
         self.stack.run(doreactor=False)