nodejs socket实现的服务端和客户端功能示例


Posted in NodeJs onJune 02, 2017

本文实例讲述了nodejs socket实现的服务端和客户端功能。分享给大家供大家参考,具体如下:

使用node.js的net模块能很快的开发出基于TCP的服务端和客户端。直接贴代码。

server.js

/**
 * Created with JetBrains WebStorm.
 * User: Administrator
 * Date: 12-10-26
 * Time: 下午3:44
 * To change this template use File | Settings | File Templates.
 */
var net = require('net');
var timeout = 20000;//超时
var listenPort = 7003;//监听端口
var server = net.createServer(function(socket){
  // 我们获得一个连接 - 该连接自动关联一个socket对象
  console.log('connect: ' +
    socket.remoteAddress + ':' + socket.remotePort);
  socket.setEncoding('binary');
  //超时事件
//  socket.setTimeout(timeout,function(){
//    console.log('连接超时');
//    socket.end();
//  });
  //接收到数据
  socket.on('data',function(data){
    console.log('recv:' + data);
  });
  //数据错误事件
  socket.on('error',function(exception){
    console.log('socket error:' + exception);
    socket.end();
  });
  //客户端关闭事件
  socket.on('close',function(data){
    console.log('close: ' +
      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.js

/**
 * Created with JetBrains WebStorm.
 * User: Administrator
 * Date: 12-10-26
 * Time: 下午3:56
 * To change this template use File | Settings | File Templates.
 */
var net = require('net');
var port = 7003;
var host = '127.0.0.1';
var client= new net.Socket();
client.setEncoding('binary');
//连接到服务端
client.connect(port,host,function(){
  client.write('hello my client');
});
client.on('data',function(data){
  console.log('recv data:'+ data);
});
client.on('error',function(error){
  console.log('error:'+error);
  client.destory();
});
client.on('close',function(){
  console.log('Connection closed');
});

希望本文所述对大家nodejs程序设计有所帮助。

NodeJs 相关文章推荐
浅谈NodeJS中require路径问题
May 07 NodeJs
详解NodeJs支付宝移动支付签名及验签
Jan 06 NodeJs
NodeJS链接MySql数据库的操作方法
Jun 27 NodeJs
nodejs前端自动化构建环境的搭建
Jul 26 NodeJs
nodejs socket服务端和客户端简单通信功能
Sep 14 NodeJs
NodeJs通过async/await处理异步的方法
Oct 09 NodeJs
通过nodejs 服务器读取HTML文件渲染到页面的方法
May 17 NodeJs
nodejs高大上的部署方式(PM2)
Sep 11 NodeJs
nodejs实现日志读取、日志查找及日志刷新的方法分析
May 20 NodeJs
NodeJs 实现简单WebSocket即时通讯的示例代码
Aug 05 NodeJs
Nodejs实现图片上传、压缩预览、定时删除功能
Oct 25 NodeJs
nodejs中使用archive压缩文件的实现代码
Nov 26 NodeJs
NodeJs使用Mysql模块实现事务处理实例
May 31 #NodeJs
基于nodejs 的多页面爬虫实例代码
May 31 #NodeJs
详解nodeJS之路径PATH模块
May 31 #NodeJs
NodeJS实现微信公众号关注后自动回复功能
May 31 #NodeJs
nodejs操作mysql实现增删改查的实例
May 28 #NodeJs
详解nodejs微信jssdk后端接口
May 25 #NodeJs
mac下的nodejs环境安装的步骤
May 24 #NodeJs
You might like
mongodb和php的用法详解
2019/03/25 PHP
javascript实用小函数使用介绍
2013/11/11 Javascript
用js+iframe形成页面的一种遮罩效果的具体实现
2013/12/31 Javascript
js设置控件的隐藏与显示的两种方法
2014/08/21 Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
2015/05/19 Javascript
使用AngularJS中的SCE来防止XSS攻击的方法
2015/06/18 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
2016/11/25 Javascript
使用JavaScript中的lodash编写双色球效果
2018/06/24 Javascript
JavaScript实现京东购物放大镜和选项卡效果的方法分析
2018/07/05 Javascript
vue-cli配置环境变量的方法
2018/07/09 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
NodeJS模块与ES6模块系统语法及注意点详解
2019/01/04 NodeJs
使用layer.msg 时间设置不起作用的解决方法
2019/09/12 Javascript
Vue开发环境跨域访问问题
2020/01/22 Javascript
js中延迟加载和预加载的具体使用
2021/01/14 Javascript
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
python实现猜单词小游戏
2020/05/22 Python
Tensorflow 合并通道及加载子模型的方法
2018/07/26 Python
python训练数据时打乱训练数据与标签的两种方法小结
2018/11/08 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
2019/06/13 Python
python 图片去噪的方法示例
2019/07/09 Python
python实现两个文件夹的同步
2019/08/29 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
Python try except else使用详解
2021/01/12 Python
浅谈HTML5新增和废弃的标签
2019/04/28 HTML / CSS
波兰电子产品购物网站:Vobis
2019/05/26 全球购物
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
升职自荐信范文
2013/10/05 职场文书
机电一体化应届生求职信范文
2014/01/24 职场文书
小学安全教育材料
2014/02/17 职场文书
2014年科普工作总结
2014/12/06 职场文书
2015年效能监察工作总结
2015/04/23 职场文书
2015年司法所工作总结
2015/04/27 职场文书
2019最新版劳务派遣管理制度
2019/08/16 职场文书
小学生作文之《压岁钱的烦恼》
2019/09/27 职场文书
SQL注入的实现以及防范示例详解
2021/06/02 MySQL