C++ sf::Http::sendRequest永远不会返回

C++ sf::Http::sendRequest永远不会返回,c++,http,sfml,C++,Http,Sfml,我已经使用编写了一个简单的web服务。我正在使用和类记录对它的请求。然而,sf::Http::sendRequest的调用永远不会返回,即使我指定了250毫秒的超时。这件事只发生在对我的网站的请求上。如果我向方法发送GET请求,则该方法会很快返回正确的响应 以下是客户端代码示例: sf::Http http("http://192.168.1.10", 8080); sf::Http::Request request("/highscores", sf::Http::Request::Metho

我已经使用编写了一个简单的web服务。我正在使用和类记录对它的请求。然而,
sf::Http::sendRequest
的调用永远不会返回,即使我指定了250毫秒的超时。这件事只发生在对我的网站的请求上。如果我向方法发送
GET
请求,则该方法会很快返回正确的响应

以下是客户端代码示例:

sf::Http http("http://192.168.1.10", 8080);
sf::Http::Request request("/highscores", sf::Http::Request::Method::Get);
request.setHttpVersion(1, 1);
//the call below never returns
auto response = http.sendRequest(request, sf::seconds(0.25f));
std::cout << response.getBody();
这些是
strace
输出的最后几行,在
recvfrom(20,
程序停止响应,必须终止

而阻塞操作的堆栈顶部跟踪是:

recv() at 0x7ffff7bcd10f    
sf::TcpSocket::receive() at 0x7ffff77b12c0  
sf::Http::sendRequest() at 0x7ffff77ad5ed   
SFML版本:2.3.2

系统:Fedora 4.8.4-200.fc24.x86_64


知道为什么
sf::Http::sendRequest
方法调用永远不会返回吗?

在调试器中运行您的SFML应用程序,在发送请求之前中断,然后进入请求,或者在应用程序似乎卡住时中断应用程序,然后报告调用跟踪。您使用的是什么SFML版本?@Lukas
strace
一些how显示了哪些调用阻塞,当然,我编辑了文章并粘贴了堆栈跟踪。sfml2.3.2(来自Fedora存储库)。在调试器中运行您的SFML应用程序,在发送请求之前中断,然后进入该应用程序,或者在应用程序似乎被卡住时中断应用程序,然后报告调用跟踪。您使用的SFML版本是什么?@Lukas
strace
以某种方式显示了哪些调用被阻止,但当然,我编辑了帖子并粘贴了堆栈跟踪。SFML2.3.2(来自Fedora存储库)。
$ strace -s 192 ./sfmlApplication
...
sendto(20, "GET /highscores HTTP/1.1\r\nconnection: close\r\ncontent-length: 0\r\ncontent-type: application/json\r\nfrom: user@sfml-dev.org\r\nhost: 192.168.1.10\r\nuser-agent: libsfml-network/2.x\r\n\r\n", 176, MSG_NOSIGNAL, NULL, 0) = 176
recvfrom(20, "HTTP/1.1 200 OK\r\nContent-Type: application/json\r\nConnection: Keep-Alive\r\nContent-Length: 2\r\n\r\n[]", 1024, MSG_NOSIGNAL, NULL, NULL) = 96
recvfrom(20, 
recv() at 0x7ffff7bcd10f    
sf::TcpSocket::receive() at 0x7ffff77b12c0  
sf::Http::sendRequest() at 0x7ffff77ad5ed