Java 如果我们要再次通信,关闭插座是否是一种良好的做法?
我正在用java编写一个客户机/服务器应用程序。我想出了一个主意,如果服务器必须再次与客户端通信,最好不要关闭套接字,反之亦然。这是一种好的做法吗?在我的其他应用程序中,我总是与连接到请求信息的服务器的客户端一起工作,现在我需要一些东西,如果服务器中的某个变量发生更改,服务器将不得不将该信息发送到某个特定的客户端。我不知道如何更好地解释这一点。总而言之,如何在没有客户端请求的情况下从服务器向客户端发送信息?尝试从服务器连接到客户端时存在多个主要问题Java 如果我们要再次通信,关闭插座是否是一种良好的做法?,java,sockets,server,client,client-server,Java,Sockets,Server,Client,Client Server,我正在用java编写一个客户机/服务器应用程序。我想出了一个主意,如果服务器必须再次与客户端通信,最好不要关闭套接字,反之亦然。这是一种好的做法吗?在我的其他应用程序中,我总是与连接到请求信息的服务器的客户端一起工作,现在我需要一些东西,如果服务器中的某个变量发生更改,服务器将不得不将该信息发送到某个特定的客户端。我不知道如何更好地解释这一点。总而言之,如何在没有客户端请求的情况下从服务器向客户端发送信息?尝试从服务器连接到客户端时存在多个主要问题 非静态IP 防火墙和WiFi路由器配置 客户必
关于每一个方面都有更多的话要说,但只需说,如果服务器保持与客户机的连接,而不是稍后尝试重新建立联系,那么就更容易了。您必须始终确保资源在不再需要时立即关闭 如果您需要等待来自服务器的请求,显然必须保持套接字打开,直到您真正想要关闭连接 实际上,当应用程序协议允许通过同一连接发送多个请求时,服务器就是这样工作的。考虑接受服务器发起的请求,就好像它是客户机中的“服务器”功能一样,但实际上您不接受连接
当然,我知道您有一个自定义的应用程序级协议。如果您使用其他应用程序级协议,如HTTP,情况可能会有所不同。如果是这种情况,请指定协议,以便我们能够更好地帮助您。这个问题非常重要vague@ControlAltDel编辑