我正在寻找有关允许多个应用程序使用端口80进行通信的方法的建议。
我知道让多个应用程序实际绑定到端口80是不可能的,或者至少是不明智的,但是,当有一个设备提供Web接口(HTTP)和使用RTP的RTSP时,我见过设备80号港口。
我对如何实现这一点有两个想法:
那些定制的应用程序是否实现了所有功能?
例如,相同的二进制文件用于Web服务器和RTSP服务器。这似乎是一种限制,因为如果你想要,你必须对已经开发的应用程序进行严格修改,例如Apache和openSSH都在端口80上。
是否存在“端口80多路复用器”类型?
例如,侦听端口80并依赖于收到的包的标头的解析器应用程序将包传递给所需的应用程序。
找到一些相关的参考资料,会试一试。
答案 0 :(得分:0)
我真的不认为这是以标准方式实现的:端口号实际上是允许在TCP和UDP协议中的不同应用程序之间进行多路复用的端口号。更通用的TSAP传输服务接入点允许在传输层进行多路复用。 TSAP是TCP,UDP或SCTP等协议中的端口。
您可能希望两个应用程序在同一端口上侦听的一个原因是第二个应用程序可以以其他方式监视或处理第一个接收并最终处理的消息。在这种情况下,使用pcap库的其他应用程序可以读取主应用程序收到的消息,这些消息可能会响应这些消息。
Netfilter也很有用,http://www.netfilter.org/
但是,如果您打算让两个应用程序响应到达同一端口的消息,那么这将非常棘手并且会依赖于每个应用程序。
在此回复中,我假设您正在考虑在同一IP地址上侦听同一端口的应用程序。不同的是使用多主机服务器,其中两个应用程序可以在不同的IP地址中侦听相同的端口号。