在基于套接字的网络上设计分布式系统时,是否为每条消息建立连接是一种好方法?

时间:2016-05-05 14:12:50

标签: java sockets distributed-computing

我正在通过在java中使用套接字创建网络来设计分布式系统。它具有与其他服务器同时通信的不同线程。在设计分布式系统或涉及同时连接的任何网络应用程序时,一次创建连接然后使用io-stream或连接进行通信应该按消息进行和关闭吗?

1 个答案:

答案 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);