我正在通过在java中使用套接字创建网络来设计分布式系统。它具有与其他服务器同时通信的不同线程。在设计分布式系统或涉及同时连接的任何网络应用程序时,一次创建连接然后使用io-stream或连接进行通信应该按消息进行和关闭吗?
答案 0 :(得分:1)
我不认为每次客户端想要发送消息时建立连接是一个好主意,因为你必须等待直到服务器接受你的连接。
//Server side code.
ServerSocket listener = new ServerSocket(9090);
Socket socket = listener.accept();
//client code
Socket s = new Socket(serverAddress, 9090);
你可以创建一个连接并在其余代码中使用inputStreamReader来监听双方的输入和输出,这种方法会使你的应用程序比每次创建连接更快。
//client code
BufferedReader input =new BufferedReader(new InputStreamReader(s.getInputStream()));
//serverCode
PrintWriter out =new PrintWriter(socket.getOutputStream(), true);