nodejs socket服务端和客户端简单通信功能

 更新时间:2017年09月14日 09:52:20   作者:Lockeyi  
这篇文章主要为大家详细介绍了nodejs socket服务端和客户端简单通信功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例讲述了通过node.js的net模块实现nodejs socket服务端和客户端简单通信功能,可以用作客户端对服务端的端口监听以及事件回执。

server端代码

var net = require('net');
//模块引入
var listenPort = 8080;//监听端口
var server = net.createServer(function(socket){
 // 创建socket服务端
 console.log('connect: ' +
  socket.remoteAddress + ':' + socket.remotePort);
 socket.setEncoding('binary');
 //接收到数据
 socket.on('data',function(data){
  console.log('client send:' + data);
 });
socket.write('Hello client!\r\n');
 // socket.pipe(socket);
 //数据错误事件
 socket.on('error',function(exception){
  console.log('socket error:' + exception);
  socket.end();
 });
 //客户端关闭事件
 socket.on('close',function(data){
  console.log('client closed!');
   // socket.remoteAddress + ' ' + socket.remotePort);
 });
}).listen(listenPort);
//服务器监听事件
server.on('listening',function(){
 console.log("server listening:" + server.address().port);
});
//服务器错误事件
server.on("error",function(exception){
 console.log("server error:" + exception);
});

client端代码

var net = require('net');
var port = 8080;
var host = '127.0.0.1';
var client= new net.Socket();
//创建socket客户端
client.setEncoding('binary');
//连接到服务端
client.connect(port,host,function(){
 client.write('hello server');
 //向端口写入数据到达服务端
});
client.on('data',function(data){
 console.log('from server:'+ data);
 //得到服务端返回来的数据
});
client.on('error',function(error){
//错误出现之后关闭连接
 console.log('error:'+error);
 client.destory();
});
client.on('close',function(){
//正常关闭连接
 console.log('Connection closed');
});

运行结果如下

这里写图片描述

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 手写简版无三方依赖的Node-Server实现示例

    手写简版无三方依赖的Node-Server实现示例

    这篇文章主要为大家介绍了手写简版无三方依赖的Node-Server实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • 详解Nodejs之npm&package.json

    详解Nodejs之npm&package.json

    本篇文章主要介绍了详解Nodejs之npm&package.json,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • node版本下报错build: `vue-cli-service build`问题及解决

    node版本下报错build: `vue-cli-service build`问题及解决

    这篇文章主要介绍了node版本下报错build: `vue-cli-service build`问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • Node Express用法详解【安装、使用、路由、中间件、模板引擎等】

    Node Express用法详解【安装、使用、路由、中间件、模板引擎等】

    这篇文章主要介绍了Node Express用法,结合实例形式详细分析了node.js Express安装、使用、路由、中间件、模板引擎等相关概念、原理及操作注意事项,需要的朋友可以参考下
    2020-05-05
  • 深入koa-bodyparser原理解析

    深入koa-bodyparser原理解析

    这篇文章主要介绍了深入koa-bodyparser原理解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Node中使用http-proxy-middleware实现代理跨域的方法步骤

    Node中使用http-proxy-middleware实现代理跨域的方法步骤

    本文主要介绍了Node中使用http-proxy-middleware实现代理跨域的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • node模块机制与异步处理详解

    node模块机制与异步处理详解

    这篇文章主要介绍了node模块机制与异步处理详解的相关资料,需要的朋友可以参考下
    2016-03-03
  • NodeJs操作MongoDB教程之分页功能以及常见问题

    NodeJs操作MongoDB教程之分页功能以及常见问题

    这篇文章主要给大家介绍了关于NodeJs操作MongoDB教程之分页功能以及常见问题的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用NodeJs具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • nodejs不用electron实现打开文件资源管理器并选择文件

    nodejs不用electron实现打开文件资源管理器并选择文件

    最近在开发一些小脚本,用 nodejs 实现,其中很多功能需要选择一个/多个文件,或者是选择一个文件夹,这种情况下网上给出的解决方案都是 electron,但是我一个小脚本用 electron 属实有点夸张了,后来转念一想可以通过 powershell 来实现类似的功能,需要的朋友可以参考下
    2024-01-01
  • 关于node+mysql数据库连接池连接

    关于node+mysql数据库连接池连接

    这篇文章主要介绍了关于node+mysql数据库连接池连接,mysql有两种连接方式:一种是直接连接 另一种是池化连接,我们这篇讲的是池化连接,需要的朋友可以参考下
    2023-04-04

最新评论