首先,我对Socket通信的使用还很陌生,所以还有一些我不知道的东西。我了解 Java 中 Socket 通信的基础知识,所以我在这里寻求指导。
现在,关于我的问题,我需要与远程应用程序建立服务器套接字通信。在我的应用程序中,我将运行另一个应用程序上的客户端将与我通信的 serverSocket。为这种通信实现的部分协议是这个套接字必须一直打开,这为我们提供了两个应用程序之间的一个永久通信通道。
到目前为止没有什么很奇怪的。问题是我将需要使用 mi serverSocket 来开始与客户端的对话。这意味着我的 serverSocket 需要在没有客户端请求的情况下向客户端发送一些信息。
对于定义,我理解 serverSockets 是等待客户端打开与它们的连接的线程,一旦建立此连接,应用程序之间的对话通常以来自客户端的一些请求(即 ENQ 字符)开始,以开始信息交换;这是针对实施了一些协议来验证、发送和接收数据的情况。否则,信息是由客户端发送的,没有经过很好的验证和控制。
在正常情况下,如果 mi 应用程序可以使用 Client 与远程应用程序上的 serverSocket 通信,我的问题将以更自然的方式处理。但这种情况并非如此。远程应用不能有serverSocket,只能有Client(别问我为什么,这是一个业务伙伴的应用,不是我自己的,暂时他们不愿意改变他们的通信方案)。
考虑到这一点,我的问题是:当我的应用程序中的进程需要时,有一种方法可以使用我正在运行和等待的 serverSocket 将一些信息从我的应用程序发送到远程客户端?我如何从我的应用程序中的第三个 bean 调用 serverSocket 中的打开套接字来写入它?