【发布时间】:2021-01-13 02:18:22
【问题描述】:
这是我的代码:
import com.github.ffalcinelli.jdivert.WinDivert;
import com.github.ffalcinelli.jdivert.exceptions.WinDivertException;
public class blocker {
public static void main(String[] args) throws WinDivertException {
WinDivert w = new WinDivert("outbound");
w.open();
}
}
我正在 Windows 操作系统的帮助下与 PLC 进行 TCP 握手。我正在使用 JnetPcap 和 Java 来执行此操作,但在握手之后,Windows 操作系统正在发送 RST、ACK 数据包并结束连接。我使用 JDivert 库在 Java 中编写了一个拦截器代码,该库基本上是 WinDivert 的 Java 包装器。我最初将出站作为过滤器只是为了测试代码是否阻止了所有内容。但它一直给我这个错误:
https://pasteboard.co/I0WWP2P.png
即使我使用了官方 JDivert github 存储库示例中给出的过滤器,也会发生这种情况。有什么帮助吗?
【问题讨论】:
-
这是 Windows 还是服务器应用程序造成的,这是有争议的,但无论如何,您当然不能使用 Jnetpcap 阻止它或其他任何东西。
-
我的意思是我正在使用 Jdivert 来阻止,Jnetpcap 只是用于 TCP 握手和其他事情,但这是一个单独的程序,这个应该只是阻止但它不是。不知道为什么。
-
如果一方发送一个 RST,那么阻塞它没有好处,因为那一方根本没有 TCP 连接,它会继续发送 RST,而不处理它收到的任何发送到的段这种联系。
-
我正在尝试阻止从我这边发送的任何 RST,这样连接就不会被终止。我将编写自己的程序来处理我这边的未来数据包,我只需要永久阻止操作系统发送任何 RST 数据包。
标签: java networking tcp jnetpcap