- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我遇到了这个奇怪的错误,CURL ERROR: Recv failure: Connection reset by peer
如果我没有连接到服务器并且突然尝试通过 PHP 中的 CURL 连接到服务器,则会发生这种情况,我会收到错误消息。当我再次运行 CURL 脚本时,错误消失,然后一直运行良好,如果我让远程服务器空闲大约 30 分钟或重新启动远程服务器并尝试再次连接,我再次收到错误。所以看起来连接是空闲的,然后服务器突然唤醒,然后工作,然后再次休眠。
这就是我的 CURL 脚本的外观。
$url = Yii::app()->params['pdfUrl'];
$body = 'title='.urlencode($title).'&client_url='.Yii::app()->params['pdfClientURL'].'&client_id='.Yii::app()->params['pdfClientID'].'&content='.urlencode(htmlentities($content));
$c = curl_init ($url);
$body = array(
"client_url"=>Yii::app()->params['pdfClientURL'],
"client_id"=>Yii::app()->params['pdfClientID'],
"title"=>urlencode($title),
"content"=>urlencode($content)
);
foreach($body as $key=>$value) { $body_str .= $key.'='.$value.'&'; }
rtrim($body_str,'&');
curl_setopt ($c, CURLOPT_POST, true);
curl_setopt ($c, CURLOPT_POSTFIELDS, $body_str);
curl_setopt ($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($c, CURLOPT_CONNECTTIMEOUT , 0);
curl_setopt ($c, CURLOPT_TIMEOUT , 20);
$pdf = curl_exec ($c);
$errorCode = curl_getinfo($c, CURLINFO_HTTP_CODE);
$curlInfo = curl_getinfo($c);
$curlError = curl_error($c);
curl_close ($c);
我完全没有想法和解决方案,请帮助,我将不胜感激!!!
如果我详细说明输出以查看使用
会发生什么curl_setopt ($c, CURLOPT_VERBOSE, TRUE);
curl_setopt($c, CURLOPT_STDERR, $fp);
我得到以下信息
* About to connect() to 196.41.139.168 port 80 (#0)
* Trying 196.x.x.x... * connected
* Connected to 196.x.x.x (196.x.x.x) port 80 (#0)
> POST /serve/?r=pdf/generatePdf HTTP/1.1
Host: 196.x.x.x
Accept: */*
Content-Length: 7115
Content-Type: application/x-www-form-urlencoded
Expect: 100-continue
* Recv failure: Connection reset by peer
* Closing connection #0
012 20:23:49 GMT
< Server: Apache/2.2.15 (CentOS)
< X-Powered-By: PHP/5.3.3
< Connection: close
< Transfer-Encoding: chunked
< Content-Type: text/html; charset=UTF-8
<
* Closing connection #0
我在下面的脚趾中添加了删除默认标题,但仍然没有运气:
curl_setopt ($c, CURLOPT_HTTPHEADER, array( 'Expect:' ) );
> Accept: */* Content-Length: 8414 Content-Type:
> application/x-www-form-urlencoded
>
> * Recv failure: Connection reset by peer
> * Closing connection #0 r: Apache/2.2.15 (CentOS) < X-Powered-By: PHP/5.3.3 < Connection: close < Transfer-Encoding: chunked <
> Content-Type: text/html; charset=UTF-8 <
> * Closing connection #0
最佳答案
远程服务器已向您发送了一个 RST 数据包,表示立即断开连接,而不是通常的握手。
A. TCP/IP
这可能是您需要通过主机解决的 TCP/IP 问题或升级您的操作系统,大多数时候远程服务器在完成下载内容之前关闭了与远程服务器的连接,导致 Connection reset by peer
。 ....
B. 内核错误
请注意,在 v2.6.17 之后,某些 Linux 内核上的 TCP 窗口缩放存在一些问题。有关详细信息,请参阅以下错误报告:
https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.17/+bug/59331
https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/89160
C. PHP 和 CURL 错误
您正在使用 PHP/5.3.3
,它也有一些严重的错误...我建议您使用更新版本的 PHP
和 curl
https://bugs.php.net/bug.php?id=52828
https://bugs.php.net/bug.php?id=52827
https://bugs.php.net/bug.php?id=52202
https://bugs.php.net/bug.php?id=50410
D. 最大传输单位
此错误的一个常见原因是通过网络连接传输的数据包的 MTU(最大传输单元)大小已从默认的 1500 字节更改。如果您配置了 VPN
,这很可能必须在配置期间进行更改
D. 防火墙:iptables
如果您不了解这些人,他们可能会导致一些严重的问题.. 尝试访问您正在连接的服务器以检查以下内容
例子
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT`
例子
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
检查所有 DROP、REJECT 并确保它们没有阻止您的连接
暂时允许所有连接,看看它是否通过
在不同的服务器或远程服务器上尝试(网上有很多免费的云托管)并测试相同的脚本。如果它有效,那么我的猜测是正确的...... 你需要更新你的系统
A. SSL
如果 Yii::app()->params['pdfUrl']
是带有 https
的 url 不包括正确的 SSL 设置也可能在旧版本中导致此错误 curl 的
解决方案:确保已安装并启用 OpenSSL,然后将其添加到您的代码中
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, false);
关于php - curl 错误 : Recv failure: Connection reset by peer - PHP Curl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10285700/
来历及功能 peer.exe进程程序文件是由北京光芒时代国际传媒网络技术有限公司为其在飞速网发布的PC客户端:RaySource程序的一个组成部分。被描述为“Grid Service”,其功能主要
希望你们一切都好 我是 webRTC 的初学者,如果我的问题感觉像菜鸟,我很抱歉,但我想知道是否有任何正确的方法来关闭对等点之间的连接,尤其是使用 simple-peer.js,期待您的精彩回复 这是
我在使用 Windows 8 商店应用程序时遇到了一些问题。我的问题很简单: 我在一台电脑上有一个 Windows 8 商店应用程序,在另一台电脑上有相同的应用程序。个人电脑不在同一个网络中,但有互联
我正在从事一个尝试设置 PayPal 点对点支付的项目。然而,自适应支付 API 似乎是当前 PayPal API 的一个非常旧的版本,最近没有更新。 我是否遗漏了什么,或者 API 的这一部分是否仍
我的应用程序使用 GKSession 和 GKSessionModePeer。它必须处理任意连接和断开连接的点,因为这是一个长时间运行的应用程序,用户应该能够进入后台并稍后返回。这在大多数情况下都很好
我在 Google Meet 上开会,看到你可以打开实时字幕。他们实际上有一个演示 here关于如何进行实时语音到文本,所以这一点不会让我感到困惑。 我也一直想尝试使用 WebRTC(我相信 Goog
我正在尝试在聊天模块中共享图像/视频。我已经提到了Sample代码,但找不到任何帮助。 我已经提到过http://quickblox.com/modules/chat/它说通过插入我们全功能的聊天模块
我想让 WiFi peer-2-peer 中的一组连接过程对用户来说是无缝的。有办法吗? 蓝牙是怎么做到的? 最佳答案 基本上有两种方法可以做到这一点,我在 WIFI DIRECT, CONNECTI
这是我原来问题的后续:Qt Server+Client App: encryption fails (updated with code)还将此发布到 Qt 论坛:http://qt-project.
我有两个位于同一子网上的 debian 服务器。它们通过开关连接。我知道 UDP 不可靠。 Question 1: I assume the link layer is ethernet. And M
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 9 年前。 Improve this qu
我正在创建一个应用程序 (C#),它将通过网络发送一些消息。传出消息将由私钥签名,传入消息将使用私钥解密。 如果有人窃取私钥,我希望能够撤销它(向所有其他客户端发送撤销消息)。由于我是被盗私钥的所有者
我仍在学习 SIP 及其所有协议(protocol),特别是尝试将 PJSIP 集成到 iPhone 应用程序中以进行 p2p 调用。我对使用 PJSUA 的对等 2 对等连接有疑问。我能够通过使用
我想用 Webrtc 创建应用程序,它可以在网站、移动 ios 应用程序和 android 应用程序上运行。 我找到了这个链接:- http://xsockets.net/api/net-c/cust
我使用 Spark Streaming 从 Twitter 接收推文。我收到很多警告说: replicated to only 0 peer(s) instead of 1 peers 这个警告有什么
我有一个需要大量数据的模拟程序。我将数据加载到 GPU 中进行计算,数据中存在很多依赖性。由于 1 个 GPU 不足以处理数据,所以我将其升级为 2 个 GPU。但限制是,如果我需要其他 GPU 上的
我在调试我的代码时遇到问题,因为我无法理解引发的套接字错误。这是回溯。 Traceback (most recent call last): File "clickpression.py", lin
我试图将Fabric配置为可以在Kubernetes集群中使用,并且在一切正常的同时,我很难将链码(使用composer-cli)部署到网络上。看来,chaincode容器看不到创建它们的对等方。 2
在Java中,您可以使用Socket和ServerSocket来获取两个进程之间通信的双向 channel 。但其中只有一个必须拥有 ServerSocket 并被视为“服务器”,另一个则被视为“客户
我用不同的名称和不同的字段名称创建了自己的用户表,我想让 kamailio 将它用作对等用户的“acc”表,我该怎么做? 最佳答案 kamailio 中的 acc 表用于会计记录(即账单数据)。 我知
我是一名优秀的程序员,十分优秀!