本文整理匯總了Python中socket.IPPROTO_TCP屬性的典型用法代碼示例。如果您正苦於以下問題:Python socket.IPPROTO_TCP屬性的具體用法?Python socket.IPPROTO_TCP怎麽用?Python socket.IPPROTO_TCP使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在類socket
的用法示例。
在下文中一共展示了socket.IPPROTO_TCP屬性的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: _start
# 需要導入模塊: import socket [as 別名]
# 或者: from socket import IPPROTO_TCP [as 別名]
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
示例2: bind
# 需要導入模塊: import socket [as 別名]
# 或者: from socket import IPPROTO_TCP [as 別名]
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)
示例3: _socks_connection
# 需要導入模塊: import socket [as 別名]
# 或者: from socket import IPPROTO_TCP [as 別名]
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),)
)
示例4: test_connect_uses_socks5_proxy
# 需要導入模塊: import socket [as 別名]
# 或者: from socket import IPPROTO_TCP [as 別名]
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),)
)
示例5: test_connect_uses_remote_dns
# 需要導入模塊: import socket [as 別名]
# 或者: from socket import IPPROTO_TCP [as 別名]
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),)
)
示例6: test_connect_uses_socks4_proxy
# 需要導入模塊: import socket [as 別名]
# 或者: from socket import IPPROTO_TCP [as 別名]
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),)
)
示例7: bind
# 需要導入模塊: import socket [as 別名]
# 或者: from socket import IPPROTO_TCP [as 別名]
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)
示例8: post_build
# 需要導入模塊: import socket [as 別名]
# 或者: from socket import IPPROTO_TCP [as 別名]
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
示例9: init
# 需要導入模塊: import socket [as 別名]
# 或者: from socket import IPPROTO_TCP [as 別名]
def init(self):
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
self.socket.connect((self.ms_ip, self.ms_tcp_port))
self.socket_1 = socket.socket()
self.recv_handle_live = True
self.recv_thread = threading.Thread(target=self.recv_handler)
self.recv_thread.daemon = True
self.session = Session()
self.session.conf = {}
self.session.locks = {}
self.last_send = 0
示例10: setup
# 需要導入模塊: import socket [as 別名]
# 或者: from socket import IPPROTO_TCP [as 別名]
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)
示例11: set_nodelay
# 需要導入模塊: import socket [as 別名]
# 或者: from socket import IPPROTO_TCP [as 別名]
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 and not self._is_connreset(e):
raise
示例12: __init__
# 需要導入模塊: import socket [as 別名]
# 或者: from socket import IPPROTO_TCP [as 別名]
def __init__(self, source, destination, payload='', proto=socket.IPPROTO_TCP):
self.version = 4
self.ihl = 5 # Internet Header Length
self.tos = 0 # Type of Service
self.tl = 20 + len(payload)
self.id = 0 # random.randint(0, 65535)
self.flags = 0 # Don't fragment
self.offset = 0
self.ttl = 64
self.protocol = proto
self.checksum = 2 # will be filled by kernel
self.source = socket.inet_aton(source)
self.destination = socket.inet_aton(destination)
示例13: pack
# 需要導入模塊: import socket [as 別名]
# 或者: from socket import IPPROTO_TCP [as 別名]
def pack(self, source, destination):
data_offset = (self.offset << 4) + 0
flags = self.fin + (self.syn << 1) + (self.rst << 2) + (self.psh << 3) + (self.ack << 4) + (self.urg << 5)
tcp_header = struct.pack('!HHLLBBHHH',
self.srcp,
self.dstp,
self.seqn,
self.ackn,
data_offset,
flags,
self.window,
self.checksum,
self.urgp)
# pseudo header fields
source_ip = source
destination_ip = destination
reserved = 0
protocol = socket.IPPROTO_TCP
total_length = len(tcp_header) + len(self.payload)
# Pseudo header
psh = struct.pack("!4s4sBBH",
source_ip,
destination_ip,
reserved,
protocol,
total_length)
psh = psh + tcp_header + self.payload
tcp_checksum = checksum(psh)
tcp_header = struct.pack("!HHLLBBH",
self.srcp,
self.dstp,
self.seqn,
self.ackn,
data_offset,
flags,
self.window)
tcp_header += struct.pack('H', tcp_checksum) + struct.pack('!H', self.urgp)
return tcp_header
示例14: get_sockaddr
# 需要導入模塊: import socket [as 別名]
# 或者: from socket import IPPROTO_TCP [as 別名]
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]
示例15: set_nodelay
# 需要導入模塊: import socket [as 別名]
# 或者: from socket import IPPROTO_TCP [as 別名]
def set_nodelay(sock: socket.socket) -> None:
"""sets the TCP_NODELAY option on the socket (to disable Nagle's algorithm), if possible."""
with contextlib.suppress(Exception):
sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)