首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node.js误差经济学

Node.js误差经济学
EN

Stack Overflow用户
提问于 2015-05-03 15:26:08
回答 1查看 3.5K关注 0票数 0

我的客户端(PHP)反复向Node.js net.Server发送消息,并得到一个意外的错误。

服务器的一部分:

代码语言:javascript
复制
socket.on('error',function(err){
    logger.emit('error',err);
});

[Error: write ECONNABORTED] code: 'ECONNABORTED', errno: 'ECONNABORTED', syscall: 'write'

[Error: read ECONNRESET] code: 'ECONNRESET', errno: 'ECONNRESET', syscall: 'read' 

如果我一个接一个地发送信息,我就不会收到错误。

client.php**:** 编辑:发布

代码语言:javascript
复制
if(isset($_GET['msg'])) {
    $sendmessage = $_GET['msg'];
    $host = "xxx.xxx.xx.xx";//server ip 
    $port = 3030;

    $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("Could not create socket\n");

    $errorcode = socket_last_error();
    $errormsg = socket_strerror($errorcode);

    socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, 1);

    $result = socket_connect($socket, $host, $port) or die("Couldn't connect to server: [$errorcode] $errormsg");

    socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array("sec" => 60, "usec" => 0));

    socket_write($socket, $message, strlen($message)) or die("Could not send data to server\n");

    $serverresponse = socket_read($socket, 1024,PHP_NORMAL_READ) or die("Could not read server response: [$errorcode] $errormsg"); 

    echo $serverresponse;
}
EN

回答 1

Stack Overflow用户

发布于 2015-05-03 16:56:26

由于PHP客户端关闭了TCP连接,因此引发错误,因此我猜您在客户机中遇到了问题。

编辑:

使用它构建一个普通的TCP套接字客户端并不是一个真正简单的任务。如果你幸运的话,你只是错过了socket_close($sock); (php.net套接字示例)。

我建议您只使用HTTP协议:

  • 使用PHP HttpRequest (php.net HttpRequest)
  • 使用NodeJS http库(关于使用nodejs http lib的博客文章)

这将使事情变得简单得多,而且几乎完全不受限制。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30015610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档