这仅在我的Web服务器上发生,而不在本地系统上发生。 我有这样的卷曲请求
#include <stdint.h>
#include <stddef.h>
#include <string.h>
enum { OK, ERROR };
template <class T>
class WaitingQueue
{
struct QueueElement
{
public:
T data;
QueueElement *next;
QueueElement(T *pdata): next(0)
{
memcpy(&data, pdata, sizeof(T));
}
};
QueueElement *head, tail;
public:
bool (*comparefunc)(uint16_t, T*);
WaitingQueue (bool (*compareFunction)(uint16_t, T*)) :comparefunc(compareFunction), head(0), tail(0) { }
int search(int16_t id, T *ret_data)
{
QueueElement *temp = head;
QueueElement *prev = 0;
if (temp != NULL)
{
if (comparefunc(id, &temp->data) == true)
{
if (prev)
{
prev->next = temp->next;
}
else
{
head = head->next;
}
memcpy(ret_data, &temp->data, sizeof(temp->data));
delete temp;
return OK;
}
prev = temp;
temp = temp->next;
}
return ERROR;
}
};
typedef struct _cmd
{
uint8_t flags;
uint16_t id;
} cmd;
bool compare(uint16_t id, cmd *cmd)
{
return (cmd->id == id);
}
class foo
{
WaitingQueue<cmd> queue(compare);
};
这会使页面加载一段时间,并仅返回白屏。真的不可能显示错误,输出或其他任何内容。
每当我将网址更改为另一个网址(存在或不存在)时,只要该网址有意义,只要该网址不包含任何点或冒号,我都会得到适当的错误或输出...
我对使用或curlopt是否有任何限制? 我无法控制目标网址,我需要使用ip:port结构中的api。
更新
更新2
事实证明,我的主机正在阻止所有传向除80和443之外的隐式IP和端口的传出流量。 取消了我的订阅,现在接受了一家不错的提供商。 感谢您的帮助
答案 0 :(得分:1)
按照@Quasimodo的建议,如果我是您,那么我将在日志文件中进行查看。如果您在使用Apache的Ubuntu服务器上,请查看/var/log/apache2/error.log
。一个巧妙的技巧是打开终端并输入:
tail -f /var/log/apache2/error.log
这将打开一个正在运行的流到终端。然后,您可以使curl-request崩溃(在浏览器中),然后返回到终端,查看收到了哪些新错误和多汁错误。
很可能是服务器上的一些配置文件。因此,如果您从该服务器编写一些规范,将很有帮助,例如: -您使用的是哪个Web服务器(Apache,Nginx等) -PHP版本 ...您可以使用phpinfo轻松找到所有这些信息。
我的最佳猜测是,您需要enable PHP_Curl来配置服务器,但是-这是从臀部射出的野蛮牛仔。
我可以看到您刚刚编辑了问题(它会思考一会儿,然后显示一个空白屏幕)。我想说,您的curl请求可能正在尝试加载大量数据,并且您的PHP配置的上限为128mb(或其他)。
我将检查PHPinfo的这两个值:
max_input_vars
memory_limit
查看它们中的任何一个是否低得可疑。
答案 1 :(得分:0)
结果是,我的托管服务提供商阻止所有传出流量到隐式IP和80和443以外的其他端口。取消了我的订阅,现在选择了一家不错的提供商。感谢您的帮助