【发布时间】:2013-11-17 23:35:35
【问题描述】:
我在互联网上没有找到有关此主题的任何信息,并在此处询问。例如,我有一个 IP 为 1.1.1.1 和 2.2.2.2 的服务器和两个指向它的域名 one.example.com 和 example2.net,并且 socke 在端口 1234 上侦听传入连接。
例如:
C/C++:
listenfd=socket(AF_INET, SOCK_STREAM, 0);
bind(...);
listen(...);
while(...) accept(...);
或Java:
ServerSocket socket = new ServerSocket(1234);
while(...) {
Socket connectionSocket = welcomeSocket.accept();
...
}
当客户端在我的套接字上接受时,我需要知道客户端使用什么域名/IP 进行连接。它可能是 one.example.com 或 example2.net 和/或 IP 1.1.1.1 或 2.2.2.2(如果仅使用 IP 连接)。
Apache 以某种方式确定了传入请求的 IP/域,我需要在纯套接字代码中执行此操作。接受 C++(主要)或 Java(或任何其他),我需要了解这方面的机制。
【问题讨论】:
-
Apache 知道正在寻址的域,因为它包含在 HTTP 标头中。你还没有说你在做什么,所以这可能不适合你。
-
是的,我处理 HTTP,所以这个选项是我的。除了 Paweł Stawarz 的回答外,它还解决了我的问题。谢谢!
标签: java c++ sockets domain-name