一个问题
例如的情况下的
DataOutputStream output= new DataOutputStream(clientSocket.getOutputStream()) ;
或
DataInputStream in = new DataInputStream(clientSocket.getInputStream());
每次我需要I / O操作时都要创建这些对象,或者每次我需要时只调用它们的读取或写入??? (每次操作后再加上一些冲洗)
答案 0 :(得分:3)
您必须只创建一次这些对象,也就是说,在套接字初始化之后。
答案 1 :(得分: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类,因为通常你只需要在那里定义的方法。