我们从Python开源项目中,提取了以下25个代码示例,用于说明如何使用gevent.socket.SOCK_STREAM。
def bind_unix_listener(self, path, backlog=50, user=None): try: sock = gevent.socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) sock.setblocking(0) self.unlink(path) sock.bind(path) if user is not None: import pwd user = pwd.getpwnam(user) os.chown(path, user.pw_uid, user.pw_gid) os.chmod(path, 0777) sock.listen(backlog) except Exception, e: self.logger.error("Create unix socket failed: %s", e.__str__()) return None return sock
def client(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect(('localhost', PORT)) f = sock.makefile(mode="wr") f.write(MSG) f.flush() assert f.readline() == MSG f.close()
def get_ipc_socket(ipc_path, timeout=0.1): sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) sock.connect(ipc_path) sock.settimeout(timeout) yield sock sock.close()
def _listen(self): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.bind((self.host, self.port)) sock.listen(256) self.slave_index = 0 slaves = [] def dispatch_command(cmd): _send_obj(slaves[self.slave_index], cmd) self.slave_index += 1 if self.slave_index == len(slaves): self.slave_index = 0 def handle_slave(sock): try: while True: self.event_queue.put_nowait(_recv_obj(sock)) except Exception as e: logger.info("Slave disconnected") slaves.remove(sock) if self.slave_index == len(slaves) and len(slaves) > 0: self.slave_index -= 1 try: sock.close() except: pass def listener(): while True: _socket, _addr = sock.accept() logger.info("Slave connected") slaves.append(_socket) gevent.spawn(lambda: handle_slave(_socket)) gevent.spawn(listener) return dispatch_command
def connect(self): self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.sock.settimeout(self.timeout) self.sock.connect((self.host, self.port)) self.sock.settimeout(None) self.sockfd = self.sock.makefile() self.closed = False
def connect(self): self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.sock.settimeout(self.timeout) self.sock.connect((self.host, self.port)) self.connected = True self.sock.settimeout(None) self.sock_file = self.sock.makefile() self._receive_events_greenlet = gevent.spawn(self.receive_events) self._process_events_greenlet = gevent.spawn(self.process_events) self._auth_request_event.wait() if not self.connected: raise NotConnectedError('Server closed connection, check FreeSWITCH config.') self.authenticate()
def get_socket(self, config): def _get_socket(): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((self.jstatus_ip, self.jstatus_port)) s.settimeout(config['timeout']) return s try: self.socket_line_prefix = '' self.already_reload = False return _get_socket() except: self.start_jstatus_process(config['java_bin']) return _get_socket()
def getPortStatus(self,ip,port): s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) try: s.settimeout(3) s.connect((ip,int(port))) s.shutdown(2) return True except: return False #??????????
def connect(self, address, unix_socket=False): if unix_socket is True: self.socket = gevent.socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) else: self.socket = gevent.socket.socket() try: self.socket.connect(address) except Exception, e: return -1010, "Connect failed: " + str(e) return 0, "OK" # ???????
def __init__(self): self.pool = Pool(1000) self.s_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.s_server.bind(('', 9994)) self.s_server.listen()
def __init__(self, host, port, app): self.server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) self.server.bind((host, port)) self.server.listen() self.app = app self.base_env = dict(os.environ.items())
def get_raw_socket(cls, env): #pragma: no cover sock = None if env.get('uwsgi.version'): try: import uwsgi fd = uwsgi.connection_fd() sock = socket.fromfd(fd, socket.AF_INET, socket.SOCK_STREAM) except Exception as e: pass elif env.get('gunicorn.socket'): sock = env['gunicorn.socket'] if not sock: # attempt to find socket from wsgi.input input_ = env.get('wsgi.input') if input_: if hasattr(input_, '_sock'): raw = input_._sock sock = socket.socket(_sock=raw) elif hasattr(input_, 'raw'): sock = input_.raw._sock elif hasattr(input_, 'rfile'): # PY3 if hasattr(input_.rfile, 'raw'): sock = input_.rfile.raw._sock # PY2 else: sock = input_.rfile._sock return sock # ============================================================================
def _lookup_port(self, port, socktype): socktypes = [] if isinstance(port, string_types): try: port = int(port) except ValueError: try: if socktype == 0: origport = port try: port = getservbyname(port, 'tcp') socktypes.append(SOCK_STREAM) except error: port = getservbyname(port, 'udp') socktypes.append(SOCK_DGRAM) else: try: if port == getservbyname(origport, 'udp'): socktypes.append(SOCK_DGRAM) except error: pass elif socktype == SOCK_STREAM: port = getservbyname(port, 'tcp') elif socktype == SOCK_DGRAM: port = getservbyname(port, 'udp') else: raise gaierror(EAI_SERVICE, 'Servname not supported for ai_socktype') except error: ex = sys.exc_info()[1] if 'not found' in str(ex): raise gaierror(EAI_SERVICE, 'Servname not supported for ai_socktype') else: raise gaierror(str(ex)) except UnicodeEncodeError: raise error('Int or String expected') elif port is None: port = 0 elif isinstance(port, int): pass else: raise error('Int or String expected') port = int(port % 65536) if not socktypes and socktype: socktypes.append(socktype) return port, socktypes
def _lookup_port(self, port, socktype): socktypes = [] if isinstance(port, string_types): try: port = int(port) except ValueError: try: if socktype == 0: origport = port try: port = getservbyname(port, 'tcp') socktypes.append(SOCK_STREAM) except error: port = getservbyname(port, 'udp') socktypes.append(SOCK_DGRAM) else: try: if port == getservbyname(origport, 'udp'): socktypes.append(SOCK_DGRAM) except error: pass elif socktype == SOCK_STREAM: port = getservbyname(port, 'tcp') elif socktype == SOCK_DGRAM: port = getservbyname(port, 'udp') else: raise gaierror(EAI_SERVICE, 'Servname not supported for ai_socktype') except error as ex: if 'not found' in str(ex): raise gaierror(EAI_SERVICE, 'Servname not supported for ai_socktype') else: raise gaierror(str(ex)) except UnicodeEncodeError: raise error('Int or String expected') elif port is None: port = 0 elif isinstance(port, integer_types): pass else: raise error('Int or String expected', port, type(port)) port = int(port % 65536) if not socktypes and socktype: socktypes.append(socktype) return port, socktypes
def _lookup_port(self, port, socktype): # pylint:disable=too-many-branches socktypes = [] if isinstance(port, string_types): try: port = int(port) except ValueError: try: if socktype == 0: origport = port try: port = getservbyname(port, 'tcp') socktypes.append(SOCK_STREAM) except error: port = getservbyname(port, 'udp') socktypes.append(SOCK_DGRAM) else: try: if port == getservbyname(origport, 'udp'): socktypes.append(SOCK_DGRAM) except error: pass elif socktype == SOCK_STREAM: port = getservbyname(port, 'tcp') elif socktype == SOCK_DGRAM: port = getservbyname(port, 'udp') else: raise gaierror(EAI_SERVICE, 'Servname not supported for ai_socktype') except error as ex: if 'not found' in str(ex): raise gaierror(EAI_SERVICE, 'Servname not supported for ai_socktype') else: raise gaierror(str(ex)) except UnicodeEncodeError: raise error('Int or String expected') elif port is None: port = 0 elif isinstance(port, integer_types): pass else: raise error('Int or String expected', port, type(port)) port = int(port % 65536) if not socktypes and socktype: socktypes.append(socktype) return port, socktypes