0

我正在寻找有关允许多个应用程序使用端口 80 进行通信的方法的建议。

我知道让多个应用程序实际绑定到端口 80 是不可能的,或者至少是不明智的,但是,当有一个设备使用端口 80 提供 Web 界面 (HTTP) 和带有 RTP 的 RTSP 时,我已经看到了设备。

关于如何实现这一点,我有两个想法:

是那些实现所有功能的定制应用程序吗?

例如,相同的二进制文件用于 Web 服务器和 RTSP 服务器。这似乎有点限制,因为如果需要,您必须对已经开发的应用程序进行严重修改,例如,Apache 和 openSSH 都在端口 80 上。

是否有“端口 80 多路复用器”之类的模式?

例如,侦听端口 80 并根据接收到的包的标头将包传递给所需的应用程序的解析器应用程序。

找到了一些相关的参考资料,试一试。

4

1 回答 1

0

我真的不认为这是可能的标准方式:端口号实际上是允许 TCP 和 UDP 协议中不同应用程序之间多路复用的端口号。更通用的 TSAP 传输服务接入点允许在传输层进行多路复用。TSAP 是 TCP、UDP 或 SCTP 等协议中的端口。

您可能希望两个应用程序侦听同一端口的一个原因是,第二个应用程序可以监视或以其他方式处理第一个应用程序接收并最终处理的消息。在这种情况下,使用 pcap 库,其他应用程序可以读取主应用程序收到的可能会响应这些消息的消息。

Netfilter 也很有用,http://www.netfilter.org/

但是,如果您打算让两个应用程序响应到达同一端口的消息,这将是棘手的,并且会依赖于每个应用程序。

在此响应中,我假设您正在考虑应用程序在同一 IP 地址上侦听同一端口。不同之处在于使用多主机服务器,其中两个应用程序可以在不同的 IP 地址中侦听相同的端口号。

于 2014-11-25T17:56:15.387 回答