Java 如何在Android上更好地控制网络数据包

Java 如何在Android上更好地控制网络数据包,java,android,tcp,network-programming,packets,Java,Android,Tcp,Network Programming,Packets,我想设计一个需要对IP数据包进行深度控制的应用程序。查看Android开发者网站上的参考指南,我发现对来自java.net:SocketOptions和java.net:DatagramPacket的数据包的控制非常有限。具体来说,我希望控制数据包中的各个位来设置TCP标志、SYN/ACK/RST等等。基于这些文档,我假设我无法在Android提供的JavaAPI中实现这一点,我猜我必须以其他方式实现它 有人对此有什么见解吗?因此SDK似乎无法满足我的需要。NDK可能能够,但经过进一步考虑,我相

我想设计一个需要对IP数据包进行深度控制的应用程序。查看Android开发者网站上的参考指南,我发现对来自java.net:SocketOptions和java.net:DatagramPacket的数据包的控制非常有限。具体来说,我希望控制数据包中的各个位来设置TCP标志、SYN/ACK/RST等等。基于这些文档,我假设我无法在Android提供的JavaAPI中实现这一点,我猜我必须以其他方式实现它


有人对此有什么见解吗?

因此SDK似乎无法满足我的需要。NDK可能能够,但经过进一步考虑,我相信即使使用它也需要根priv来构造原始数据包。由于我现在不打算启动我的手机,这一切都将被搁置。

我认为这是不可能的。也许你可以使用NDK来实现这一点,但我没有使用它的经验,所以我甚至不能告诉你NDK是否为我们提供了Berkeley套接字。这里的另一个问题是,如果没有根,这是否可能?在大多数操作系统上,原始数据包通常需要根priv。