2012-04-23 156 views
0

我有许多服务器运行在不同的计算机上并侦听其众所周知的IP地址和端口。 我想在服务器之间建立连接(首先尝试获胜),并基于众所周知的IPAddress /端口对对呼叫者进行身份验证。在套接字侦听器服务器之间建立连接

我现在的问题是,我无法重新使用侦听器端口来启动一个新的连接 - 所以这种身份验证是不可能的(即使连接套接字稍后会被通信实例参数唯一标识)。

我想保持伙伴之间的对称性(没有什么像'主'协调节点)。 有没有解决这个问题的方法?

[据我所知,SO_REUSEADDR并不意味着这个...]

更新: 我刚才定义包含ip地址和端口号对一些配置。这个想法是使用这些对来建立连接。因此,具有配置的参与方可以轻松检查传入的连接。 后来我想把所有东西放在xinetd后面,让他验证传入的地址/端口组合。

摘要: 事件如果在理论上可能通过使用机器特定的(IPAddress,端口)对来建立网络,则不可能通过等效的通信节点来实现它(它们的“一半”必须是客户端,其他半服务器)。 对吗? [我们也可以讨论这个问题背后的动机,但这并不问题]

+1

而不是使用相同的端口作为服务器正在侦听,为什么不将传出连接绑定到另一个指定的端口?一个常见的例子是“listening_port_number + 1”。 – 2012-04-23 13:38:30

+0

...并继续为所有的网络节点?它可以很难被授权然后... – BenSteven 2012-04-23 13:41:09

+0

你能澄清你知道的IP地址和端口**是什么意思吗?如果它的标准服务,如SMTP,如何在SMTP上添加基于IP端口对的身份验证服务? – tuxuday 2012-04-23 13:53:15

回答

0

我必须说,依靠IP地址是不是真正的安全。但是,如果这是你选择做什么,你可以做以下

  • 使用UDP,而不是TCP之一。您可以轻松地从同一端口发送/接收消息。
  • 使用一对TCP端口。一个用于发送,另一个用于接收。
相关问题