原文地址:https://www.cnblogs.com/ay-a/p/9822057.html

Node.js 的 net 模块可以方便的创建TCP 服务,,以下是使用 net 模块创建的tcp 服务和客户端的一个简单例子。

一、创建TCP Server

  1. var net = require('net');
  2. var tcp_server = net.createServer(); // 创建 tcp server
  3.  
  4. var Sockets = {};
  5. var SocketID = ;
  6.  
  7. // 监听 端口
  8. tcp_server.listen(,function (){
  9. console.log('tcp_server listening 5678');
  10. });
  11.  
  12. // 处理客户端连接
  13. tcp_server.on('connection',function (socket){
  14. console.log(socket.address());
  15. Sockets[SocketID] =socket;
  16. SocketID++;
  17. DealConnect(socket)
  18. })
  19.  
  20. tcp_server.on('error', function (){
  21. console.log('tcp_server error!');
  22. })
  23.  
  24. tcp_server.on('close', function () {
  25. console.log('tcp_server close!');
  26. })
  27.  
  28. // 处理每个客户端消息
  29. function DealConnect(socket){
  30.  
  31. socket.on('data',function(data){
  32. data = data.toString();
  33. // 向所有客户端广播消息
  34. for(var i in Sockets){
  35. Sockets[i].write(data);
  36. }
  37. // socket.write(data);
  38. console.log('received data %s',data);
  39. })
  40.  
  41. // 客户端正常断开时执行
  42. socket.on('close', function () {
  43. console.log('client disconneted!');
  44. })
  45. // 客户端正异断开时执行
  46. socket.on("error", function (err) {
  47. console.log('client error disconneted!');
  48. });
  49. }

二、创建 TCP Client

  1. var net = require('net');
  2.  
  3. // 指定连接的tcp server ip,端口
  4. var options = {
  5. host : '172.30.20.10',
  6. port :
  7. }
  8.  
  9. var tcp_client = net.Socket();
  10.  
  11. // 连接 tcp server
  12. tcp_client.connect(options,function(){
  13. console.log('connected to Server');
  14. tcp_client.write('I am tcp_client of node!');
  15. })
  16.  
  17. // 接收数据
  18. tcp_client.on('data',function(data){
  19. console.log('received data: %s from server', data.toString());
  20. })
  21.  
  22. tcp_client.on('end',function(){
  23. console.log('data end!');
  24. })
  25.  
  26. tcp_client.on('error', function () {
  27. console.log('tcp_client error!');
  28. })

Node.js使用TCP通讯的更多相关文章

  1. 一文搞懂如何使用Node.js进行TCP网络通信

    摘要: 网络是通信互联的基础,Node.js提供了net.http.dgram等模块,分别用来实现TCP.HTTP.UDP的通信,本文主要对使用Node.js的TCP通信部份进行实践记录. 本文分享自 ...

  2. Node.js使用UDP通讯

    Node.js 的 dgram 模块可以方便的创建udp服务,,以下是使用 dgram模块创建的udp服务和客户端的一个简单例子. 一.创建 UDP Server var dgram = requir ...

  3. Node.js实现TCP和HTTP并作简单的比较

    TCP和Node 传输控制协议是一个面向连接的协议,换句话说,它是一个传输层的协议,它主要的职务呢,就是确保信息传输的正确性. 我们使用的很多如HTTP协议都是基于TCP的,为什么呢?因为我们不希望传 ...

  4. 了不起的Node.js读书笔记

    原文摘自我的前端博客,欢迎大家来访问 http://www.hacke2.cn 第二章 Js概览 基于GoogleV8引擎 Object.keys(o) 数组方法:遍历forEach.过滤filter ...

  5. Node.js学习之TCP/IP数据通讯

    Node.js学习之TCP/IP数据通讯 1.使用net模块实现基于TCP的数据通讯 提供了一个net模块,专用于实现TCP服务器与TCP客户端之间的通信 1.1创建TCP服务器 在Node.js利用 ...

  6. Beaglebone Black– 智能家居控制系统 LAS - 网页服务器 Node.js 、Web Service、页面 和 TCP 请求转 UDP 发送

    上一篇,纯粹玩 ESP8266,写入了 init.lua 能收发 UDP.这次拿 BBB 开刀,用 BBB host 一个 web server ,用于与用户交互,数据来自 ESP8266 的 UDP ...

  7. node.js和socket.io纯js实现的即时通讯实例分享

    在这个例子中,其实node.js并没有真正起到服务器的作用,因为我们这里可以直接运行client.html文件,而不用输入url请求,当 然,要想输入url请求页面内容还需要加入请求静态文件的代码.这 ...

  8. 利用node.js来实现长连接/聊天(通讯实例)

    首先: 需要在服务器端安装node.js,然后安装express,socket.io这两个模块,并配置好相关的环境变量等. 其次: 服务端代码如下: var app = require('expres ...

  9. node.js中net网络模块TCP服务端与客户端的使用

    node.js中net模块为我们提供了TCP服务器和客户端通信的各种接口. 一.创建服务器并监听端口 const net = require('net'); //创建一个tcp服务 //参数一表示创建 ...

随机推荐

  1. 通过示例学习JavaScript闭包

    译者按: 在上一篇博客,我们通过实现一个计数器,了解了如何使用闭包(Closure),这篇博客将提供一些代码示例,帮助大家理解闭包. 原文: JavaScript Closures for Dummi ...

  2. Js 控制随机数概率

    如: 取 1~10 之间的随机数,那么他们的取值范围是: 整数 区间 概率 1 [0,1) 0.1 2 [1,2) 0.1 3 [2,3) 0.1 4 [3,4) 0.1 5 [4,5) 0.1 6 ...

  3. [总结]高效的jQuery代码编写技巧

    缓存变量 DOM遍历是昂贵的,所以尽量将会重用的元素缓存. // 糟糕 h = $('#element').height(); $('#element').css('height',h-20); // ...

  4. ICML 2018 | 从强化学习到生成模型:40篇值得一读的论文

    https://blog.csdn.net/y80gDg1/article/details/81463731 感谢阅读腾讯AI Lab微信号第34篇文章.当地时间 7 月 10-15 日,第 35 届 ...

  5. [Intellij] 在IntelliJ IDEA 中创建运行web项目

    安装工具 1.JDK7+ 2.IntelliJ Idea 工具(下载安装后,网上找注册码破解即可) 3.tomcat7+ 解压缩版 明确两个概念: 1.Project:类似于eclipse的works ...

  6. mysql随笔系列-1

    MySQL数据库管理 本人实验所用的MySQL数据库版本:5.5.56-MariaDB MariaDB Server  操作系统:centos7.5 1.创建数据库 MariaDB [(none)]& ...

  7. Android为TV端助力 StringBuffer 和StringBuilder

    如果我们的程序是在单线程下运行,或者是不必考虑到线程同步问题,我们应该优先使用StringBuilder类:如果要保证线程安全,自然是StringBuffer. 除了对多线程的支持不一样外,这两个类的 ...

  8. Android为TV端助力 am命令以及hotkey文件的编写

    1.拨打电话:am start -a android.intent.action.CALL -d tel:10086 这里-a表示动作,-d表述传入的数据,还有-t表示传入的类型. 2. 打开一个网页 ...

  9. FreeSWITCH1.6安装教程Centos

    介绍 FreeSWITCH是个网络电话转化器,相当与网络转换器,不过这个是用于IP电话,构建公司的电话通讯系统需要用该技术,因为按照官方文档无法成功安装. 本文目的:FreeSWITCH安装步骤 官方 ...

  10. socket通讯,TCP,UDP,HTTP的区别

    socket编程有TCP和UDP, TCP:传送控制协议(Transmission Control Protocol) 传输控制协议TCP是TCP/IP协议栈中的传输层协议,它通过序列确认以及包重发机 ...