我目前正在研究一个python SOCKS4服务器。虽然与socat连接到服务器工作正常,但此服务器运行良好。甚至其他工具也可以正常工作。因此,wireshark会按预期显示流量。
但是,与firefox连接到服务器失败。 socks服务器(在端口8080上列出)建立了与远程网站的连接(如slashdot.org)和客户端(此处为firefox浏览器),尽管浏览器immediateley发送其FIN / ACK。为了说明,请参见蓝线:
我不确定,遗失的是什么。浏览器是否有特殊的SOCKS4实现或什么?
[更新] 澄清我的意思。请考虑以下代码来检查套接字:
...
r, w, e = select.select([remote,client],[],[])
for s in r:
try:
data = s.recv(1024)
logger.debug("len(data)=%d" % len(data))
...
一旦浏览器发送其FIN / ACK,这将是len(data)==0
,实际上意味着套接字被关闭了,对吗?这让我很困惑,因为我不知道为什么浏览器会退出连接。有什么想法吗?