Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby TCPSocket服务器-我可以告诉客户机连接到哪个主机吗?_Ruby_Sockets_Tcpsocket - Fatal编程技术网

Ruby TCPSocket服务器-我可以告诉客户机连接到哪个主机吗?

Ruby TCPSocket服务器-我可以告诉客户机连接到哪个主机吗?,ruby,sockets,tcpsocket,Ruby,Sockets,Tcpsocket,我有一个基于TCPSocket(非HTTP)的ruby服务器 我有两个不同的域,都用A记录指向我的服务器IP地址(同一个)。因此,有一些客户端连接到其中一个域。 可以告诉客户机连接到哪个域吗 我看到这在其他协议中是可能的,但我不确定这是基于手动添加的头还是从基本tcp/ip连接中提取的。例如,在PHP中,有一个$\u服务器[“HTTP\U主机”]显示客户端连接到哪个域。在TCP套接字级别,唯一已知的是连接的源和目标IP地址(和端口)。在这一层,无法知道IP地址是如何通过DNS解析的。即使HTTP

我有一个基于TCPSocket(非HTTP)的ruby服务器

我有两个不同的域,都用A记录指向我的服务器IP地址(同一个)。因此,有一些客户端连接到其中一个域。 可以告诉客户机连接到哪个域吗


我看到这在其他协议中是可能的,但我不确定这是基于手动添加的头还是从基本tcp/ip连接中提取的。例如,在PHP中,有一个
$\u服务器[“HTTP\U主机”]
显示客户端连接到哪个域。

在TCP套接字级别,唯一已知的是连接的源和目标IP地址(和端口)。在这一层,无法知道IP地址是如何通过DNS解析的。即使HTTP在TCP之上工作,HTTP服务器也必须查看来自客户端的HTTP头,以了解它们向哪个域发出请求。(这就是填写HTTP_主机值的方式。)

一种可能的解决方案是将服务器配置为具有附加IP地址。这可以通过为NIC分配额外的IP地址或添加额外的NIC来实现。然后让每个域使用不同的IP地址。否则,这是不可能的,您可能需要考虑在TCP之上的应用协议来传递这些信息。