我是 java 网络编程的新手。我正在谷歌搜索 java 中 TCP 客户端的代码。我遇到了以下示例。
import java.lang.*;
import java.io.*;
import java.net.*;
class Client {
public static void main(String args[]) {
try {
Socket skt = new Socket("localhost", 1234);
BufferedReader in = new BufferedReader(new
InputStreamReader(skt.getInputStream()));
System.out.print("Received string: '");
while (!in.ready()) {}
System.out.println(in.readLine()); // Read one line and output it
System.out.print("'\n");
in.close();
}
catch(Exception e) {
System.out.print("Whoops! It didn't work!\n");
}
}
}
客户端似乎一次读取一“行”数据?我正在连接到流式传输 OpenFlow 数据包的服务器。OpenFlow 数据包的wireshark 屏幕截图如下所示。
[http://www.openflow.org/downloads/screenshot-openflow-dissector-2008-07-15-2103.jpg][1]
一旦我收到完整的数据包,我想将其转储到一个文件中,然后例如使用wireshark读取它。在上面的代码中,他们使用calss BufferedReader来读取“行”中的数据?至少我是这么理解的。有什么方法可以获取完整的数据包然后将其写入文件?