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 作为您的服务器。
我创建了一个 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 作为您的服务器。