有什么想法我可以创建一个网络使用“的;米;对于JavaSE?

有什么想法我可以创建一个网络使用“的;米;对于JavaSE?,java,java-client,Java,Java Client,我需要测量java应用程序在java内部使用的字节数(即,除了没有安全管理器处理外,我没有任何对JVM的特殊访问权),但我需要发送/接收的所有字节,包括协议头等。有没有人对如何做到这一点有好的想法 显而易见的做法是创建一个新的URLConnectionHandler并将计量插入IO流。但是,这并没有为我提供发送到Java应用程序或从Java应用程序发送的HTTP/HTTPS消息的头大小。如果您想要确切的字节数,您需要操作系统的帮助,并以非常特定于平台的方式 网络流量是一组Babushka玩偶 U

我需要测量java应用程序在java内部使用的字节数(即,除了没有安全管理器处理外,我没有任何对JVM的特殊访问权),但我需要发送/接收的所有字节,包括协议头等。有没有人对如何做到这一点有好的想法


显而易见的做法是创建一个新的URLConnectionHandler并将计量插入IO流。但是,这并没有为我提供发送到Java应用程序或从Java应用程序发送的HTTP/HTTPS消息的头大小。

如果您想要确切的字节数,您需要操作系统的帮助,并以非常特定于平台的方式

网络流量是一组Babushka玩偶

URLConnection为每个包添加一个头,TCP堆栈为每个包添加一个头,ethernet堆栈为每个包添加另一个头。然后,在程序的后面会出现确认、重新传输等情况。然后是dns请求和路由数据包

你需要特殊的规则来将你的应用程序的流量与其他流量分开

总而言之,这是毫无希望的

出于实际目的,我建议您在机器上设置应用程序,并使用wireshark或类似工具捕获流量。在内部,按照描述测量有效负载,然后使用外部测量来测量开销

然后估计典型使用的%开销,并将其添加到应用程序的有效负载测量中

它将非常接近,没有人会注意到差异