[英]count the number of bytes that java web client sends and receives
I have Simple web client written on Java and I have to count the number of bytes that it sends and recieves. 我有使用Java编写的简单Web客户端,我必须计算它发送和接收的字节数。 Then I have to compare results with netstat -s command. 然后我必须将结果与netstat -s命令进行比较。 Also, how can i measure average size of the packets I sent and receive. 另外,我如何测量发送和接收的数据包的平均大小。 Here is WebClient.java: 这是WebClient.java:
package javaapplication1;
/**
*
* @author
*/
import java.net.*;
import java.io.*;
import java.util.*;
public class WebClient {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter host name (e.g., www.ouhk.edu.hk): ");
String host = scanner.nextLine();
System.out.print("Enter page (e.g., /index.html): ");
String page = scanner.nextLine();
final String CRLF = "\r\n"; // newline
final int PORT = 80; // default port for HTTP
try {
Socket socket = new Socket(host, PORT);
OutputStream os = socket.getOutputStream();
InputStream is = socket.getInputStream();
PrintWriter writer = new PrintWriter(os);
writer.print("GET " + page + " HTTP/1.1" + CRLF);
writer.print("Host: " + host + CRLF);
writer.print(CRLF);
writer.flush(); // flush any buffer
BufferedReader reader = new BufferedReader(
new InputStreamReader(is));
String line;
while ((line = reader.readLine()) != null){
System.out.println(line);
}
System.out.println("Recieved bytes:");
socket.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
You could create your own implementations of FilterInputStream
and FilterOutputStream
that will count all data passed through. 您可以创建自己的FilterInputStream
和FilterOutputStream
实现,它们将计算通过的所有数据。 Then just use them as filters, for example: 然后将它们用作过滤器,例如:
OutputStream os = new CountingOutpurStream(socket.getOutputStream());
InputStream is = new CountingInputStream(socket.getInputStream());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.