isp*_*iro 12 .net c# sockets udp tcp
与使用端口80有关的许多问题都有答案说有许多程序将它用作默认端口.这篇文章提到了一些:Skype,IIS,Apache ......
由于一次只能有一个应用程序可以侦听任何一个端口 - 这怎么可能?如果答案是那只是他们的默认端口 - 应用程序如何知道它必须将信息发送到不同的端口?例如 - 如果iis将在端口81上收听,因为Skype正在监听80 - 请求网页的任何人都知道如何将请求发送到theip:81而不是theip:80?
我的目标是在任何硬编码端口由于某些应用程序已经在其上监听而导致失败时,有一种在程序之间建立连接的强大方法.端口只需要使用一次,以便传达将在会话的其余部分使用的动态端口.这对于网络连接和在同一台计算机上连接多个应用程序都是一个问题.
注册IANA并非总是可行,甚至不一定能解决问题 - 有人可能仍在监听注册端口.显然,"没有碰撞的希望"的解决方案 - 只是没有削减它.
(我知道连接有两个套接字(和一个协议),因此一个套接字可以有多个连接.我的问题是关于监听套接字以建立连接.)
我期望的是,在操作系统(Windows)上存在一些我可以注册我的应用程序的服务,并接收带有一些签名的所有传入流量 - 即使它只是一些魔术字符串.或者也许是一些多个应用程序可以同时监听的端口- 并且所有端口都会收到每个传入的消息 但到目前为止我还没有找到类似的东西.
\n\n\n怎么可能?简单来说……不是。每个端口上只有一个应用程序会侦听。\xe2\x80\x93 阿德里亚诺·雷佩蒂
\n
正确的。当 Skype 在我启动 Web 服务器之前侦听这些端口时,服务器会失败。我花了一段时间才找出原因。
\n\n只有一个应用程序可以以正常的方式侦听套接字。如果您指定特殊选项,操作系统允许多个应用程序侦听同一端口,但这很疯狂。然后,接受的连接以未指定(即随机)的方式分派到不同的应用程序。
\n\nIIS 可以在同一端口上运行多个 Web 应用程序,因为它在内核模式下打开一次端口并将连接分派到其工作进程。
\n