Java 套接字编程回调

Java socket programming call back

我创建了一个 class 库项目 "Communication" 用于使用 UDP 套接字编程进行通信。

此通信将从应用程序调用,并使通信始终打开并准备好使用线程接受。

每当需要发送数据时,由于 Application 具有 Communication 对象,因此访问起来简单易行。

但是每当收到数据时,我希望将数据发送到应用程序。

参考下图

如何实现?各位大侠?

UDP 通信在两个方向上应该是一样的。没有不对称 client/server 也没有 sender/receiver。您的 "Application" 和 "Communication" 应该以相同的方式工作。

两者都可以发送消息,并且都可以以相同的方式接收消息。

换句话说,您应该已经在监听端编写了这段代码,您只需要在 "Application"

上使用相同的监听端即可

制作这样的界面:

interface Notifyable {
  void notify(DatagramPacket p);
}

并让您的 Application 实施它。

然后给你的 Communication class 引用 Application 并且每当你收到数据时,调用 notify 方法。

您所描述的完全符合 http 协议。在 HTTP 中,服务器接收请求并向客户端发送响应。因此,除非您有使用 UDP 的特定要求,否则最简单的 servlet 会为您提供所需的行为 - 服务器始终启动并可用,并且在收到 HTTP 请求后,您的 servlet 会发送响应。所以,只需阅读如何获得一些 Web 服务器或应用程序服务器并创建一个 servlet,就可以了。为简单起见,我建议使用 Apache Tomcat 作为您的服务器。