我的客户端(PHP)反复向Node.js net.Server发送消息,并得到一个意外的错误。
服务器的一部分:
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**:** 编辑:发布
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;
}发布于 2015-05-03 16:56:26
由于PHP客户端关闭了TCP连接,因此引发错误,因此我猜您在客户机中遇到了问题。
编辑:
使用它构建一个普通的TCP套接字客户端并不是一个真正简单的任务。如果你幸运的话,你只是错过了socket_close($sock); (php.net套接字示例)。
我建议您只使用HTTP协议:
HttpRequest (php.net HttpRequest)http库(关于使用nodejs http lib的博客文章)这将使事情变得简单得多,而且几乎完全不受限制。
https://stackoverflow.com/questions/30015610
复制相似问题