套接字编程的最佳做法是什么 - 我每次都要关闭它还是让它保持打开状态?

use*_*027 5 java sockets

我还没有找到一个明确的答案.

我在Java 7中有一个客户端/服务器应用程序.服务器和客户端在单独的计算机上.客户端有一个短(1行10个字符)命令发送到服务器,服务器响应(120个字符串).这将每X秒重复一次 - 其中X是配置文件中的速率.这可能短至1秒到Integer.MAX_VALUE秒.

每次我创建客户端/服务器应用程序时,理念都是创建连接,执行业务,关闭连接,然后对数据执行任何其他操作.这似乎是应该做的事情 - 特别是在使用资源编程的尝试时.

将插座连接挂在那里X秒会有什么打嗝?关闭并重新启动是否真的是最佳做法,或者套接字保持连接并且每隔X秒发送命令是一种更好的做法?

tal*_*len 0

恕我直言,客户端应该打开,做它的事情,然后关闭。

在服务器上... 在 UNIX 中,通常会派生一个进程来应答呼叫(每个呼叫);然而,在 Windows 上,通常会为每个入站调用创建一个新线程。