1

一个问题

在例如的情况下

DataOutputStream output= new DataOutputStream(clientSocket.getOutputStream()) ;

或者

DataInputStream in = new   DataInputStream(clientSocket.getInputStream());

每次我需要 I/O 操作时是否必须创建这些对象,或者每次我需要时只调用它们的读取或写入?(每次手术后加上一些冲洗)

4

2 回答 2

3

您必须只创建一次这些对象,即在您的套接字初始化之后。

于 2011-02-06T13:26:20.453 回答
2

这两种变体都是可能的,但只创建一次会更有用。

如果您想要一些缓冲(以避免为每个写入命令发送新的 TCP 数据包),您可能需要考虑在 Socket 和 DataIn/Output 之间放置一个 BufferedInputStream:

DataOutput output = new DataOutputStream(new BufferedOutputStream(clientSocket.getOutputStream()));
DataInput input   = new DataInputStream (new BufferedInputStream (clientSocket.getInputStream()));

我在这里使用接口 DataInput/DataOutput 而不是 Stream 类,因为通常您只需要那里定义的方法。

于 2011-02-06T14:02:03.057 回答