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 相关文章推荐
基于promise.js实现nodejs的promises库
Jul 06 NodeJs
使用DNode实现php和nodejs之间通信的简单实例
Jul 06 NodeJs
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
Aug 21 NodeJs
Nodejs进阶:基于express+multer的文件上传实例
Nov 21 NodeJs
nodejs和php实现图片访问实时处理
Jan 05 NodeJs
详解NodeJs支付宝移动支付签名及验签
Jan 06 NodeJs
nodejs使用http模块发送get与post请求的方法示例
Jan 08 NodeJs
nodejs读取并去重excel文件
Apr 22 NodeJs
nodejs中express入门和基础知识点学习
Sep 13 NodeJs
使用koa-log4管理nodeJs日志笔记的使用方法
Nov 30 NodeJs
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
May 30 NodeJs
nodejs+koa2 实现模仿springMVC框架
Oct 21 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
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
2017/06/30 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
2019/07/08 PHP
Javascript & DHTML 实例编程(教程)基础知识
2007/06/02 Javascript
ASP.NET jQuery 实例3 (在TextBox里面阻止复制、剪切和粘贴事件)
2012/01/13 Javascript
JavaScript使用setInterval()函数实现简单轮询操作的方法
2015/02/02 Javascript
javascript中基本类型和引用类型的区别分析
2015/05/12 Javascript
JavaScript检查数字是否为整数或浮点数的方法
2015/06/09 Javascript
BootStrap table表格插件自适应固定表头(超好用)
2016/08/24 Javascript
对Angular.js Controller如何进行单元测试
2016/10/25 Javascript
移动端js图片查看器
2016/11/17 Javascript
Bootstrap页面缩小变形的快速解决办法
2017/02/03 Javascript
基于js 各种排序方法和sort方法的区别(详解)
2018/01/03 Javascript
JavaScript的Object.defineProperty详解
2018/07/09 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
[28:42]Ti4正赛VG vs NEWBEE1
2014/07/19 DOTA
[原创]pip和pygal的安装实例教程
2017/12/07 Python
python模拟事件触发机制详解
2018/01/19 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
2018/07/09 Python
解决python 自动安装缺少模块的问题
2018/10/22 Python
Python爬虫:url中带字典列表参数的编码转换方法
2019/08/21 Python
用Python将Excel数据导入到SQL Server的例子
2019/08/24 Python
Python实现的爬取豆瓣电影信息功能案例
2019/09/15 Python
python ftplib模块使用代码实例
2019/12/31 Python
python生成大写32位uuid代码
2020/03/03 Python
Python 实现敏感目录扫描的示例代码
2020/05/21 Python
一款纯css3制作的2015年元旦雪人动画特效教程
2014/12/29 HTML / CSS
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
台湾母婴用品限时团购:妈咪爱
2018/08/03 全球购物
怎样声明子类
2013/07/02 面试题
教师个人鉴定材料
2014/02/08 职场文书
我爱我家教学反思
2014/05/01 职场文书
入党积极分子个人总结
2015/03/02 职场文书
JavaScript实现显示和隐藏图片
2021/04/29 Javascript
Oracle 区块链表创建过程详解
2021/05/15 Oracle
HTML中的表格元素介绍
2022/02/28 HTML / CSS
解决IIS7下无法绑定https主机的问题
2022/04/29 Servers