如何打开特定 URL 上的套接字

How can I open a socket on a specific url?

本文关键字:套接字 URL 何打开      更新时间:2023-10-16

注意:我不太了解c ++。我正在使用一个网站托管(000webhost.com(,我有一个php脚本,旨在接收数据,在post请求中。我当前使用的代码,它获取 000webhost 的主机,这不是我想要的,我想使用 url (SomeName.000webhostapp.com(,但它正在重定向到主机。这是代码:

SOCKET Socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
SOCKADDR_IN SockAddr;
SockAddr.sin_port = htons(80);
SockAddr.sin_family = AF_INET;
SockAddr.sin_addr.s_addr = *((unsigned long*)gethostbyname("SomeName.000webhost.com")->h_addr);

感谢您提供的任何帮助。

套接字不连接到 URL,它们连接到主机和端口。 URL 的其余部分(即路径部分(是您在连接后通过套接字 HTTP 请求中发送的内容。

听起来您是在说您正在尝试查找"SomeName.000webhostapp.com",但您得到的是"000webhost.com"的 IP 地址。 这并不奇怪。 您的提供商很可能正在使用基于名称的虚拟主机,其中所有子域实际上都由单个 IP 地址上的单个服务器处理。

发送 HTTP 请求时,需要按照 HTTP 1.1 协议的要求包含一个Host: SomeName.000webhostapp.com标头。 根据该标头,服务器知道要响应哪个站点。