c++ - 如何打开特定 url 上的套接字?

标签 c++

<分区>

注意:我不太了解 C++。 我正在使用网站托管 (000webhost.com),并且我有一个 php 脚本,用于在发布请求中接收数据。我当前使用的代码获取 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 地址。这并不奇怪。您的提供商可能正在使用 name-based virtual hosting ,其中所有子域实际上都由单个 IP 地址上的单个服务器处理。

当您发送 HTTP 请求时,您需要包含 Host: SomeName.000webhostapp.com header ,这是 HTTP 1.1 协议(protocol)的要求。基于该 header ,服务器知道要响应哪个站点。

关于c++ - 如何打开特定 url 上的套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43152648/

相关文章:

c++ - 在 C++ 中确定数据表事件的类型

c++ - Visual Studio 内存窗口只包含问号

c++ - boost序列化异常: unregistered class,序列化多态基础问题

c++ - 不同翻译单元中不可重载的非内联函数定义

c++ - vector 迭代器错误

c++ - 尝试使用 std::get_time 解析 YYMMDD 并失败

c++ - Qt C++ 析构函数需要很长时间才能返回

c++ - 无法弄清楚如何计算CRC7

c++ - 十进制转十六进制C++内置函数

c++ - shared_ptr<> 的自定义删除器给出 'no context error'