Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果我们要再次通信,关闭插座是否是一种良好的做法?_Java_Sockets_Server_Client_Client Server - Fatal编程技术网

Java 如果我们要再次通信,关闭插座是否是一种良好的做法?

Java 如果我们要再次通信,关闭插座是否是一种良好的做法?,java,sockets,server,client,client-server,Java,Sockets,Server,Client,Client Server,我正在用java编写一个客户机/服务器应用程序。我想出了一个主意,如果服务器必须再次与客户端通信,最好不要关闭套接字,反之亦然。这是一种好的做法吗?在我的其他应用程序中,我总是与连接到请求信息的服务器的客户端一起工作,现在我需要一些东西,如果服务器中的某个变量发生更改,服务器将不得不将该信息发送到某个特定的客户端。我不知道如何更好地解释这一点。总而言之,如何在没有客户端请求的情况下从服务器向客户端发送信息?尝试从服务器连接到客户端时存在多个主要问题 非静态IP 防火墙和WiFi路由器配置 客户必

我正在用java编写一个客户机/服务器应用程序。我想出了一个主意,如果服务器必须再次与客户端通信,最好不要关闭套接字,反之亦然。这是一种好的做法吗?在我的其他应用程序中,我总是与连接到请求信息的服务器的客户端一起工作,现在我需要一些东西,如果服务器中的某个变量发生更改,服务器将不得不将该信息发送到某个特定的客户端。我不知道如何更好地解释这一点。总而言之,如何在没有客户端请求的情况下从服务器向客户端发送信息?

尝试从服务器连接到客户端时存在多个主要问题

  • 非静态IP
  • 防火墙和WiFi路由器配置
  • 客户必须正在登录

  • 关于每一个方面都有更多的话要说,但只需说,如果服务器保持与客户机的连接,而不是稍后尝试重新建立联系,那么就更容易了。您必须始终确保资源在不再需要时立即关闭

    如果您需要等待来自服务器的请求,显然必须保持套接字打开,直到您真正想要关闭连接

    实际上,当应用程序协议允许通过同一连接发送多个请求时,服务器就是这样工作的。考虑接受服务器发起的请求,就好像它是客户机中的“服务器”功能一样,但实际上您不接受连接


    当然,我知道您有一个自定义的应用程序级协议。如果您使用其他应用程序级协议,如HTTP,情况可能会有所不同。如果是这种情况,请指定协议,以便我们能够更好地帮助您。

    这个问题非常重要vague@ControlAltDel编辑