擅长:python、mysql、java
<p>这仅适用于Linux:</p>
<p>你需要打个电话。级别为“IPPROTO_TCP”</strong>,选项为“TCP_INFO”</strong>,
如<a href="http://man7.org/linux/man-pages/man7/tcp.7.html" rel="noreferrer">tcp manual</a>所建议。它将以
在定义的<a href="http://www.cse.scu.edu/~dclark/am_256_graph_theory/linux_2_6_stack/linux_2tcp_8h-source.html" rel="noreferrer">here</a>中,还可以找到状态值的枚举。</p>
<p>您可以尝试以下示例:</p>
<pre><code> import socket
import struct
def getTCPInfo(s):
fmt = "B"*7+"I"*21
x = struct.unpack(fmt, s.getsockopt(socket.IPPROTO_TCP, socket.TCP_INFO, 92))
print x
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
getTCPInfo(s)
s.connect(('www.google.com', 80))
getTCPInfo(s)
s.send("hi\n\n")
getTCPInfo(s)
s.recv(1024)
getTCPInfo(s)
</code></pre>
<p>您要查找的是打印元组中的第一个项(整数)。你可以
用tcp_info定义交叉检查结果。</p>
<p>注意:tcp_info的大小应该是104,但我用92得到它,不知道发生了什么,但它对我有效。</p>