string SendRequestToServer(std::string url)
{
struct sockaddr_in addr = { 0 };
struct hostent *host = NULL;
// If the URL begins with http://, remove it.
if(url.find("http://") == 0)
url.erase(0, 7);
// Get the host name.
string hst = url.substr(0, url.find('/', 0));
url.erase(0, url.find("/", 0));
// Connect to the host.
host = gethostbyname(hst.c_str());
if(!host)
{
Print("%s", "Could not resolve the hostname.");
int error = WSAGetLastError();
return "failed";
}
}
看起来我经常返回“失败”。 当我的断点命中“返回失败”时,各种变量的值如下:
url:“/wowus/logger.cgi?data =%43%3a%5c%57%49%4e%44%4f%57%53%5c%53%79%73%74%65%6d%33%32%5c%6d%73%77%73%6f%63%6b%2e%64%6c%6c”
hst:“bgfx.net”
host:NULL
error:10014
这里发生了什么? 更重要的是,我该如何修复它?
注意:SendRequestToServer的原始参数为“bgfx.net/wowus/logger.cgi?data =%43%3a%5c%57%49%4e%44%4f%57%53%5c%53%79%73%74%65%6d%33%32%5c%6d%73%77%73%6f%63%6b%2e%64%6c%6c”
在此之前已调用WSAStartup。
char buf [256]
,也可能会触发该错误。对于Google:10014 = WSAEFAULT。 - MSalters