Python socket.IPPROTO_TCP Examples
The following are 30
code examples of socket.IPPROTO_TCP().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
socket
, or try the search function
.
![](https://www.programcreek.com/common/static/images/search.png)
Example #1
Source File: wsgiserver3.py From SalesforceXyTools with Apache License 2.0 | 7 votes |
def bind(self, family, type, proto=0): """Create (or recreate) the actual socket object.""" self.socket = socket.socket(family, type, proto) prevent_socket_inheritance(self.socket) self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) if self.nodelay and not isinstance(self.bind_addr, str): self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) if self.ssl_adapter is not None: self.socket = self.ssl_adapter.bind(self.socket) # If listening on the IPV6 any address ('::' = IN6ADDR_ANY), # activate dual-stack. See https://bitbucket.org/cherrypy/cherrypy/issue/871. if (hasattr(socket, 'AF_INET6') and family == socket.AF_INET6 and self.bind_addr[0] in ('::', '::0', '::0.0.0.0')): try: self.socket.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0) except (AttributeError, socket.error): # Apparently, the socket option is not available in # this machine's TCP stack pass self.socket.bind(self.bind_addr)
Example #2
Source File: wsgiserver2.py From SalesforceXyTools with Apache License 2.0 | 7 votes |
def bind(self, family, type, proto=0): """Create (or recreate) the actual socket object.""" self.socket = socket.socket(family, type, proto) prevent_socket_inheritance(self.socket) self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) if self.nodelay and not isinstance(self.bind_addr, str): self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) if self.ssl_adapter is not None: self.socket = self.ssl_adapter.bind(self.socket) # If listening on the IPV6 any address ('::' = IN6ADDR_ANY), # activate dual-stack. See https://bitbucket.org/cherrypy/cherrypy/issue/871. if (hasattr(socket, 'AF_INET6') and family == socket.AF_INET6 and self.bind_addr[0] in ('::', '::0', '::0.0.0.0')): try: self.socket.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0) except (AttributeError, socket.error): # Apparently, the socket option is not available in # this machine's TCP stack pass self.socket.bind(self.bind_addr)
Example #3
Source File: proxy2.py From selenium-wire with MIT License | 6 votes |
def _socks_connection(host, port, timeout, socks_config): """Create a SOCKS connection based on the supplied configuration.""" try: socks_type = dict( socks4=socks.PROXY_TYPE_SOCKS4, socks5=socks.PROXY_TYPE_SOCKS5, socks5h=socks.PROXY_TYPE_SOCKS5 )[socks_config.scheme] except KeyError: raise TypeError('Invalid SOCKS scheme: {}'.format(socks_config.scheme)) socks_host, socks_port = socks_config.hostport.split(':') return socks.create_connection( (host, port), timeout, None, socks_type, socks_host, int(socks_port), socks_config.scheme == 'socks5h', socks_config.username, socks_config.password, ((socket.IPPROTO_TCP, socket.TCP_NODELAY, 1),) )
Example #4
Source File: test_proxy2.py From selenium-wire with MIT License | 6 votes |
def test_connect_uses_socks5_proxy(self, mock_socks): conf = namedtuple('ProxyConf', 'scheme username password hostport') self.config = { 'http': conf(*_parse_proxy('socks5://socks_user:socks_pass@socks_host:3128')), 'no_proxy': 'localhost,127.0.0.1,dev_server:8080' } mock_socks.PROXY_TYPE_SOCKS5 = socks.PROXY_TYPE_SOCKS5 conn = ProxyAwareHTTPConnection(self.config, 'example.com') conn.connect() mock_socks.create_connection.assert_called_once_with( ('example.com', 80), socket._GLOBAL_DEFAULT_TIMEOUT, None, socks.PROXY_TYPE_SOCKS5, 'socks_host', 3128, False, 'socks_user', 'socks_pass', ((socket.IPPROTO_TCP, socket.TCP_NODELAY, 1),) )
Example #5
Source File: test_proxy2.py From selenium-wire with MIT License | 6 votes |
def test_connect_uses_socks4_proxy(self, mock_socks): conf = namedtuple('ProxyConf', 'scheme username password hostport') self.config = { 'http': conf(*_parse_proxy('socks4://socks_user:socks_pass@socks_host:3128')), 'no_proxy': 'localhost,127.0.0.1,dev_server:8080' } mock_socks.PROXY_TYPE_SOCKS4 = socks.PROXY_TYPE_SOCKS4 conn = ProxyAwareHTTPConnection(self.config, 'example.com') conn.connect() mock_socks.create_connection.assert_called_once_with( ('example.com', 80), socket._GLOBAL_DEFAULT_TIMEOUT, None, socks.PROXY_TYPE_SOCKS4, 'socks_host', 3128, False, 'socks_user', 'socks_pass', ((socket.IPPROTO_TCP, socket.TCP_NODELAY, 1),) )
Example #6
Source File: test_proxy2.py From selenium-wire with MIT License | 6 votes |
def test_connect_uses_remote_dns(self, mock_socks): conf = namedtuple('ProxyConf', 'scheme username password hostport') self.config = { 'https': conf(*_parse_proxy('socks5h://socks_user:socks_pass@socks_host:3128')), 'no_proxy': 'localhost,127.0.0.1,dev_server:8080' } mock_socks.PROXY_TYPE_SOCKS5 = socks.PROXY_TYPE_SOCKS5 conn = ProxyAwareHTTPSConnection(self.config, 'example.com', context=Mock()) conn.connect() mock_socks.create_connection.assert_called_once_with( ('example.com', 443), socket._GLOBAL_DEFAULT_TIMEOUT, None, socks.PROXY_TYPE_SOCKS5, 'socks_host', 3128, True, 'socks_user', 'socks_pass', ((socket.IPPROTO_TCP, socket.TCP_NODELAY, 1),) )
Example #7
Source File: serving.py From recruit with Apache License 2.0 | 6 votes |
def get_sockaddr(host, port, family): """Return a fully qualified socket address that can be passed to :func:`socket.bind`.""" if family == af_unix: return host.split("://", 1)[1] try: res = socket.getaddrinfo( host, port, family, socket.SOCK_STREAM, socket.IPPROTO_TCP ) except socket.gaierror: return host, port return res[0][4]
Example #8
Source File: inet.py From CyberScan with GNU General Public License v3.0 | 6 votes |
def post_build(self, p, pay): p += pay dataofs = self.dataofs if dataofs is None: dataofs = 5+((len(self.get_field("options").i2m(self,self.options))+3)/4) p = p[:12]+chr((dataofs << 4) | ord(p[12])&0x0f)+p[13:] if self.chksum is None: if isinstance(self.underlayer, IP): if self.underlayer.len is not None: ln = self.underlayer.len-20 else: ln = len(p) psdhdr = struct.pack("!4s4sHH", inet_aton(self.underlayer.src), inet_aton(self.underlayer.dst), self.underlayer.proto, ln) ck=checksum(psdhdr+p) p = p[:16]+struct.pack("!H", ck)+p[18:] elif conf.ipv6_enabled and isinstance(self.underlayer, scapy.layers.inet6.IPv6) or isinstance(self.underlayer, scapy.layers.inet6._IPv6ExtHdr): ck = scapy.layers.inet6.in6_chksum(socket.IPPROTO_TCP, self.underlayer, p) p = p[:16]+struct.pack("!H", ck)+p[18:] else: warning("No IP underlayer to compute checksum. Leaving null.") return p
Example #9
Source File: test_proxy2.py From selenium-wire with MIT License | 6 votes |
def test_connect_uses_socks4_proxy(self, mock_socks): conf = namedtuple('ProxyConf', 'scheme username password hostport') self.config = { 'https': conf(*_parse_proxy('socks4://socks_user:socks_pass@socks_host:3128')), 'no_proxy': 'localhost,127.0.0.1,dev_server:8080' } mock_socks.PROXY_TYPE_SOCKS4 = socks.PROXY_TYPE_SOCKS4 conn = ProxyAwareHTTPSConnection(self.config, 'example.com', context=Mock()) conn.connect() mock_socks.create_connection.assert_called_once_with( ('example.com', 443), socket._GLOBAL_DEFAULT_TIMEOUT, None, socks.PROXY_TYPE_SOCKS4, 'socks_host', 3128, False, 'socks_user', 'socks_pass', ((socket.IPPROTO_TCP, socket.TCP_NODELAY, 1),) )
Example #10
Source File: bootstrap.py From pycoind with MIT License | 6 votes |
def _start(self): def try_address(address): try: (ip_address, port) = address index = 0 for info in socket.getaddrinfo(ip_address, port, socket.AF_INET, socket.SOCK_STREAM, socket.IPPROTO_TCP): try: with self._lock: self._found.append((info[4][0], info[4][1])) except Exception, e: pass # snooze for some time, so each dns_seed has a chance # to add nodes, and get addresses from those nodes #snooze = -1 + 1.3 ** index #if snooze > 600: snooze = 600 + random.randint(0, 120) #index += 1 #time.sleep(snooze) except Exception, e: pass
Example #11
Source File: __init__.py From nightmare with GNU General Public License v2.0 | 6 votes |
def bind(self, family, type, proto=0): """Create (or recreate) the actual socket object.""" self.socket = socket.socket(family, type, proto) prevent_socket_inheritance(self.socket) self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) if self.nodelay and not isinstance(self.bind_addr, str): self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) if self.ssl_adapter is not None: self.socket = self.ssl_adapter.bind(self.socket) # If listening on the IPV6 any address ('::' = IN6ADDR_ANY), # activate dual-stack. See http://www.cherrypy.org/ticket/871. if (hasattr(socket, 'AF_INET6') and family == socket.AF_INET6 and self.bind_addr[0] in ('::', '::0', '::0.0.0.0')): try: self.socket.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0) except (AttributeError, socket.error): # Apparently, the socket option is not available in # this machine's TCP stack pass self.socket.bind(self.bind_addr)
Example #12
Source File: protocols.py From aiosocks with Apache License 2.0 | 5 votes |
def _get_dst_addr(self): infos = await self._loop.getaddrinfo( self._dst_host, self._dst_port, family=socket.AF_UNSPEC, type=socket.SOCK_STREAM, proto=socket.IPPROTO_TCP, flags=socket.AI_ADDRCONFIG) if not infos: raise OSError('getaddrinfo() returned empty list') return infos[0][0], infos[0][4][0]
Example #13
Source File: socks.py From faces with GNU General Public License v2.0 | 5 votes |
def _write_SOCKS5_address(self, addr, file): """ Return the host and port packed for the SOCKS5 protocol, and the resolved address as a tuple object. """ host, port = addr proxy_type, _, _, rdns, username, password = self.proxy family_to_byte = {socket.AF_INET: b"\x01", socket.AF_INET6: b"\x04"} # If the given destination address is an IP address, we'll # use the IP address request even if remote resolving was specified. # Detect whether the address is IPv4/6 directly. for family in (socket.AF_INET, socket.AF_INET6): try: addr_bytes = socket.inet_pton(family, host) file.write(family_to_byte[family] + addr_bytes) host = socket.inet_ntop(family, addr_bytes) file.write(struct.pack(">H", port)) return host, port except socket.error: continue # Well it's not an IP number, so it's probably a DNS name. if rdns: # Resolve remotely host_bytes = host.encode('idna') file.write(b"\x03" + chr(len(host_bytes)).encode() + host_bytes) else: # Resolve locally addresses = socket.getaddrinfo(host, port, socket.AF_UNSPEC, socket.SOCK_STREAM, socket.IPPROTO_TCP, socket.AI_ADDRCONFIG) # We can't really work out what IP is reachable, so just pick the # first. target_addr = addresses[0] family = target_addr[0] host = target_addr[4][0] addr_bytes = socket.inet_pton(family, host) file.write(family_to_byte[family] + addr_bytes) host = socket.inet_ntop(family, addr_bytes) file.write(struct.pack(">H", port)) return host, port
Example #14
Source File: connection.py From oss-ftp with MIT License | 5 votes |
def _new_conn(self): """ Establish a socket connection and set nodelay settings on it. :return: a new socket connection """ extra_args = [] if self.source_address: # Python 2.7+ extra_args.append(self.source_address) conn = socket.create_connection( (self.host, self.port), self.timeout, *extra_args) conn.setsockopt( socket.IPPROTO_TCP, socket.TCP_NODELAY, self.tcp_nodelay) return conn
Example #15
Source File: SocketServer.py From oss-ftp with MIT License | 5 votes |
def setup(self): self.connection = self.request if self.timeout is not None: self.connection.settimeout(self.timeout) if self.disable_nagle_algorithm: self.connection.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, True) self.rfile = self.connection.makefile('rb', self.rbufsize) self.wfile = self.connection.makefile('wb', self.wbufsize)
Example #16
Source File: core.py From ADBHoney with GNU General Public License v3.0 | 5 votes |
def accept_connections(self): self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) """ Set TCP keepalive on an open socket. It activates after 1 second (after_idle_sec) of idleness, then sends a keepalive ping once every 1 seconds (interval_sec), and closes the connection after 100 failed ping (max_fails) """ #self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # pylint: disable=no-member if hasattr(socket, 'TCP_KEEPIDLE'): self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPIDLE, 1) elif hasattr(socket, 'TCP_KEEPALIVE'): self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPALIVE, 1) if hasattr(socket, 'TCP_KEEPINTVL'): self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, 1) if hasattr(socket, 'TCP_KEEPCNT'): self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPCNT, 100) # pylint: enable=no-member self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, True) self.sock.bind((self.bind_addr, self.bind_port)) self.sock.listen(1) logger.info('Listening on {}:{}.'.format(self.bind_addr, self.bind_port)) try: while True: conn, addr = self.sock.accept() logger.info("Received a connection, creating an ADBConnection.") thread = threading.Thread(target=ADBConnection, args=(conn, addr)) thread.daemon = True thread.start() except KeyboardInterrupt: logger.info('Exiting...') self.sock.close() if output_writer: output_writer.stop()
Example #17
Source File: iostream.py From viewfinder with Apache License 2.0 | 5 votes |
def set_nodelay(self, value): if (self.socket is not None and self.socket.family in (socket.AF_INET, socket.AF_INET6)): try: self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1 if value else 0) except socket.error as e: # Sometimes setsockopt will fail if the socket is closed # at the wrong time. This can happen with HTTPServer # resetting the value to false between requests. if e.errno != errno.EINVAL: raise
Example #18
Source File: iostream.py From viewfinder with Apache License 2.0 | 5 votes |
def set_nodelay(self, value): if (self.socket is not None and self.socket.family in (socket.AF_INET, socket.AF_INET6)): try: self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1 if value else 0) except socket.error as e: # Sometimes setsockopt will fail if the socket is closed # at the wrong time. This can happen with HTTPServer # resetting the value to false between requests. if e.errno != errno.EINVAL: raise
Example #19
Source File: socketserver.py From verge3d-blender-addon with GNU General Public License v3.0 | 5 votes |
def setup(self): self.connection = self.request if self.timeout is not None: self.connection.settimeout(self.timeout) if self.disable_nagle_algorithm: self.connection.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, True) self.rfile = self.connection.makefile('rb', self.rbufsize) self.wfile = self.connection.makefile('wb', self.wbufsize)
Example #20
Source File: tcpip.py From pyvisa-py with MIT License | 5 votes |
def _get_tcpip_nodelay(self, attribute): if self.interface: value = self.interface.getsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY) return ( constants.VI_TRUE if value == 1 else constants.VI_FALSE, StatusCode.success, ) return 0, StatusCode.error_nonsupported_attribute
Example #21
Source File: tcpip.py From pyvisa-py with MIT License | 5 votes |
def _set_tcpip_nodelay(self, attribute, attribute_state): if self.interface: self.interface.setsockopt( socket.IPPROTO_TCP, socket.TCP_NODELAY, 1 if attribute_state else 0 ) return StatusCode.success return 0, StatusCode.error_nonsupported_attribute
Example #22
Source File: aiogps.py From rtkbase with GNU Affero General Public License v3.0 | 5 votes |
def _open_connection(self) -> None: """ Opens a connection to the GPSD server and configures the TCP socket. """ self.logger.info( f"Connecting to gpsd at {self.connection_args['host']}" + (f":{self.connection_args['port']}" if self.connection_args['port'] else '')) self.reader, self.writer = await asyncio.wait_for( asyncio.open_connection(**self.connection_args), self.connection_timeout, loop=self.loop) # Set socket options sock = self.writer.get_extra_info('socket') if sock is not None: if 'SO_KEEPALIVE' in self.alive_opts: sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, self.alive_opts['SO_KEEPALIVE']) if hasattr( sock, 'TCP_KEEPIDLE') and 'TCP_KEEPIDLE' in self.alive_opts: sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPIDLE, # pylint: disable=E1101 self.alive_opts['TCP_KEEPIDLE']) if hasattr( sock, 'TCP_KEEPINTVL') and 'TCP_KEEPINTVL' in self.alive_opts: sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, # pylint: disable=E1101 self.alive_opts['TCP_KEEPINTVL']) if hasattr( sock, 'TCP_KEEPCNT') and 'TCP_KEEPCNT' in self.alive_opts: sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPCNT, self.alive_opts['TCP_KEEPCNT'])
Example #23
Source File: SocketServer.py From BinderFilter with MIT License | 5 votes |
def setup(self): self.connection = self.request if self.timeout is not None: self.connection.settimeout(self.timeout) if self.disable_nagle_algorithm: self.connection.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, True) self.rfile = self.connection.makefile('rb', self.rbufsize) self.wfile = self.connection.makefile('wb', self.wbufsize)
Example #24
Source File: socks.py From phpsploit with GNU General Public License v3.0 | 5 votes |
def _write_SOCKS5_address(self, addr, file): """ Return the host and port packed for the SOCKS5 protocol, and the resolved address as a tuple object. """ host, port = addr proxy_type, _, _, rdns, username, password = self.proxy family_to_byte = {socket.AF_INET: b"\x01", socket.AF_INET6: b"\x04"} # If the given destination address is an IP address, we'll # use the IP address request even if remote resolving was specified. # Detect whether the address is IPv4/6 directly. for family in (socket.AF_INET, socket.AF_INET6): try: addr_bytes = socket.inet_pton(family, host) file.write(family_to_byte[family] + addr_bytes) host = socket.inet_ntop(family, addr_bytes) file.write(struct.pack(">H", port)) return host, port except socket.error: continue # Well it's not an IP number, so it's probably a DNS name. if rdns: # Resolve remotely host_bytes = host.encode('idna') file.write(b"\x03" + chr(len(host_bytes)).encode() + host_bytes) else: # Resolve locally addresses = socket.getaddrinfo(host, port, socket.AF_UNSPEC, socket.SOCK_STREAM, socket.IPPROTO_TCP, socket.AI_ADDRCONFIG) # We can't really work out what IP is reachable, so just pick the # first. target_addr = addresses[0] family = target_addr[0] host = target_addr[4][0] addr_bytes = socket.inet_pton(family, host) file.write(family_to_byte[family] + addr_bytes) host = socket.inet_ntop(family, addr_bytes) file.write(struct.pack(">H", port)) return host, port
Example #25
Source File: grpc_socket.py From purerpc with Apache License 2.0 | 5 votes |
def _set_socket_options(sock: anyio.SocketStream): sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) if hasattr(socket, "TCP_KEEPIDLE"): sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPIDLE, 300) elif is_darwin(): # Darwin specific option TCP_KEEPALIVE = 16 sock.setsockopt(socket.IPPROTO_TCP, TCP_KEEPALIVE, 300) if not is_windows(): sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, 30) sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPCNT, 5) sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
Example #26
Source File: ggposrv.py From ggposrv with GNU General Public License v2.0 | 5 votes |
def set_keepalive_linux(sock, after_idle_sec=3600, interval_sec=3, max_fails=5): """Set TCP keepalive on an open socket. It activates after 3600 seconds (after_idle_sec) of idleness, then sends a keepalive ping once every 3 seconds (interval_sec), and closes the connection after 5 failed ping (max_fails), or 15 seconds """ sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPIDLE, after_idle_sec) sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, interval_sec) sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPCNT, max_fails)
Example #27
Source File: test_proxy2.py From selenium-wire with MIT License | 5 votes |
def test_connect_uses_remote_dns(self, mock_socks): conf = namedtuple('ProxyConf', 'scheme username password hostport') self.config = { 'http': conf(*_parse_proxy('socks5h://socks_user:socks_pass@socks_host:3128')), 'no_proxy': 'localhost,127.0.0.1,dev_server:8080' } mock_socks.PROXY_TYPE_SOCKS5 = socks.PROXY_TYPE_SOCKS5 conn = ProxyAwareHTTPConnection(self.config, 'example.com') conn.connect() mock_socks.create_connection.assert_called_once_with( ('example.com', 80), socket._GLOBAL_DEFAULT_TIMEOUT, None, socks.PROXY_TYPE_SOCKS5, 'socks_host', 3128, True, 'socks_user', 'socks_pass', ((socket.IPPROTO_TCP, socket.TCP_NODELAY, 1),) )
Example #28
Source File: iostream.py From opendevops with GNU General Public License v3.0 | 5 votes |
def set_nodelay(self, value: bool) -> None: if self.socket is not None and self.socket.family in ( socket.AF_INET, socket.AF_INET6, ): try: self.socket.setsockopt( socket.IPPROTO_TCP, socket.TCP_NODELAY, 1 if value else 0 ) except socket.error as e: # Sometimes setsockopt will fail if the socket is closed # at the wrong time. This can happen with HTTPServer # resetting the value to ``False`` between requests. if e.errno != errno.EINVAL and not self._is_connreset(e): raise
Example #29
Source File: rss_client.py From avocado-vt with GNU General Public License v2.0 | 5 votes |
def __init__(self, address, port, log_func=None, timeout=20): """ Connect to a server. :param address: The server's address :param port: The server's port :param log_func: If provided, transfer stats will be passed to this function during the transfer :param timeout: Time duration to wait for connection to succeed :raise FileTransferConnectError: Raised if the connection fails """ family = ":" in address and socket.AF_INET6 or socket.AF_INET self._socket = socket.socket(family, socket.SOCK_STREAM) self._socket.settimeout(timeout) try: addrinfo = socket.getaddrinfo(address, port, family, socket.SOCK_STREAM, socket.IPPROTO_TCP) self._socket.connect(addrinfo[0][4]) except socket.error as e: raise FileTransferConnectError("Cannot connect to server at " "%s:%s" % (address, port), e) try: if self._receive_msg(timeout) != RSS_MAGIC: raise FileTransferConnectError("Received wrong magic number") except FileTransferTimeoutError: raise FileTransferConnectError("Timeout expired while waiting to " "receive magic number") self._send(struct.pack("=i", CHUNKSIZE)) self._log_func = log_func self._last_time = time.time() self._last_transferred = 0 self.transferred = 0
Example #30
Source File: SocketServer.py From ironpython2 with Apache License 2.0 | 5 votes |
def setup(self): self.connection = self.request if self.timeout is not None: self.connection.settimeout(self.timeout) if self.disable_nagle_algorithm: self.connection.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, True) self.rfile = self.connection.makefile('rb', self.rbufsize) self.wfile = self.connection.makefile('wb', self.wbufsize)