许多关于端口80被使用的问题有答案指出许多程序将其作为默认端口。这篇帖子提到了一些:Skype、IIS、Apache等。
由于任何一个端口同一时间只能被一个应用程序监听,那么这是怎么回事呢?如果答案是这只是它们的默认端口,那么一个应用程序如何知道它必须发送信息到另一个端口?例如,如果iis会监听端口81,因为Skype正在监听80,那么请求网页的任何人都将知道要将请求发送到theip:81而不是theip:80吗?
我的目标是建立一种强大的方法来设置程序之间的连接,当任何硬编码的端口可能由于已经被某个应用程序监听而失败时。端口只需要在通信的起始阶段使用一次,以确定接下来会使用什么动态端口。这是一个网络连接和连接同一台计算机上的几个应用程序的问题。
注册IANA并不总是可能的,甚至不一定能解决问题——仍然可能会有人监听已注册的端口。显然,“希望不发生冲突”的解决方案是行不通的。
(我确实理解连接有两个套接字(和一个协议),因此一个套接字可以有多个连接。我的问题是关于监听套接字以建立连接的。)
我期望的是,在操作系统(Windows)上存在某些服务,我可以在其中注册我的应用程序,并使用某些签名接收所有传入的流量,即使只是一些魔术字符串。或者可能有一些端口,多个应用程序可以同时监听,并且所有应用程序都将获得每个传入的消息。但到目前为止,我还没有找到类似的东西。
由于任何一个端口同一时间只能被一个应用程序监听,那么这是怎么回事呢?如果答案是这只是它们的默认端口,那么一个应用程序如何知道它必须发送信息到另一个端口?例如,如果iis会监听端口81,因为Skype正在监听80,那么请求网页的任何人都将知道要将请求发送到theip:81而不是theip:80吗?
我的目标是建立一种强大的方法来设置程序之间的连接,当任何硬编码的端口可能由于已经被某个应用程序监听而失败时。端口只需要在通信的起始阶段使用一次,以确定接下来会使用什么动态端口。这是一个网络连接和连接同一台计算机上的几个应用程序的问题。
注册IANA并不总是可能的,甚至不一定能解决问题——仍然可能会有人监听已注册的端口。显然,“希望不发生冲突”的解决方案是行不通的。
(我确实理解连接有两个套接字(和一个协议),因此一个套接字可以有多个连接。我的问题是关于监听套接字以建立连接的。)
我期望的是,在操作系统(Windows)上存在某些服务,我可以在其中注册我的应用程序,并使用某些签名接收所有传入的流量,即使只是一些魔术字符串。或者可能有一些端口,多个应用程序可以同时监听,并且所有应用程序都将获得每个传入的消息。但到目前为止,我还没有找到类似的东西。