Node.js使用TCP通讯
原文地址:https://www.cnblogs.com/ay-a/p/9822057.html
Node.js 的 net 模块可以方便的创建TCP 服务,,以下是使用 net 模块创建的tcp 服务和客户端的一个简单例子。
一、创建TCP Server
var net = require('net');
var tcp_server = net.createServer();  // 创建 tcp server
var Sockets = {};
var SocketID = ;
// 监听 端口
tcp_server.listen(,function (){
    console.log('tcp_server listening 5678');
});
// 处理客户端连接
tcp_server.on('connection',function (socket){
    console.log(socket.address());
    Sockets[SocketID] =socket;
    SocketID++;
    DealConnect(socket)
})
tcp_server.on('error', function (){
    console.log('tcp_server error!');
})
tcp_server.on('close', function () {
    console.log('tcp_server close!');
})
// 处理每个客户端消息
function DealConnect(socket){
    socket.on('data',function(data){
        data = data.toString();
        // 向所有客户端广播消息
       for(var i in Sockets){
           Sockets[i].write(data);
       }
        // socket.write(data);
        console.log('received data %s',data);
    })
    // 客户端正常断开时执行
    socket.on('close', function () {
        console.log('client disconneted!');
    })
// 客户端正异断开时执行
    socket.on("error", function (err) {
        console.log('client error disconneted!');
    });
}
二、创建 TCP Client
var net = require('net');
// 指定连接的tcp server ip,端口
var options = {
    host : '172.30.20.10',
    port :
}
var tcp_client = net.Socket();
// 连接 tcp server
tcp_client.connect(options,function(){
    console.log('connected to Server');
    tcp_client.write('I am tcp_client of node!');
})
// 接收数据
tcp_client.on('data',function(data){
    console.log('received data: %s from server', data.toString());
})
tcp_client.on('end',function(){
    console.log('data end!');
})
tcp_client.on('error', function () {
    console.log('tcp_client error!');
})
Node.js使用TCP通讯的更多相关文章
- 一文搞懂如何使用Node.js进行TCP网络通信
		
摘要: 网络是通信互联的基础,Node.js提供了net.http.dgram等模块,分别用来实现TCP.HTTP.UDP的通信,本文主要对使用Node.js的TCP通信部份进行实践记录. 本文分享自 ...
 - Node.js使用UDP通讯
		
Node.js 的 dgram 模块可以方便的创建udp服务,,以下是使用 dgram模块创建的udp服务和客户端的一个简单例子. 一.创建 UDP Server var dgram = requir ...
 - Node.js实现TCP和HTTP并作简单的比较
		
TCP和Node 传输控制协议是一个面向连接的协议,换句话说,它是一个传输层的协议,它主要的职务呢,就是确保信息传输的正确性. 我们使用的很多如HTTP协议都是基于TCP的,为什么呢?因为我们不希望传 ...
 - 了不起的Node.js读书笔记
		
原文摘自我的前端博客,欢迎大家来访问 http://www.hacke2.cn 第二章 Js概览 基于GoogleV8引擎 Object.keys(o) 数组方法:遍历forEach.过滤filter ...
 - Node.js学习之TCP/IP数据通讯
		
Node.js学习之TCP/IP数据通讯 1.使用net模块实现基于TCP的数据通讯 提供了一个net模块,专用于实现TCP服务器与TCP客户端之间的通信 1.1创建TCP服务器 在Node.js利用 ...
 - Beaglebone Black– 智能家居控制系统 LAS - 网页服务器 Node.js 、Web Service、页面 和 TCP 请求转 UDP 发送
		
上一篇,纯粹玩 ESP8266,写入了 init.lua 能收发 UDP.这次拿 BBB 开刀,用 BBB host 一个 web server ,用于与用户交互,数据来自 ESP8266 的 UDP ...
 - node.js和socket.io纯js实现的即时通讯实例分享
		
在这个例子中,其实node.js并没有真正起到服务器的作用,因为我们这里可以直接运行client.html文件,而不用输入url请求,当 然,要想输入url请求页面内容还需要加入请求静态文件的代码.这 ...
 - 利用node.js来实现长连接/聊天(通讯实例)
		
首先: 需要在服务器端安装node.js,然后安装express,socket.io这两个模块,并配置好相关的环境变量等. 其次: 服务端代码如下: var app = require('expres ...
 - node.js中net网络模块TCP服务端与客户端的使用
		
node.js中net模块为我们提供了TCP服务器和客户端通信的各种接口. 一.创建服务器并监听端口 const net = require('net'); //创建一个tcp服务 //参数一表示创建 ...
 
随机推荐
- 微服务创建——Ubuntu搭建GitLab
			
Ubuntu呢,用的国产麒麟,可能对于用习惯了Windows操作系统的人来说使用UKylin会很难受吧,开发的人倒没什么,不过就是命令行的问题 那么,怎么搭建一个完整的GitLab呢,一步步来操作吧, ...
 - Java NIO 学习
			
Java NIO提供了与标准IO不同的IO工作方式: Channels and Buffers(通道和缓冲区):标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(B ...
 - Deep Learning - 1 神经网络
			
Artificial Neuron 人工神经元有: Perceptrons(感知机) Sigmoid Perceptron 感知机input是多个二进制,output是一个二进制. graph LR ...
 - JAVA TestNG单元测试详解
			
TestNG单元测试详解 by:授客 QQ:1033553122 1. 测试环境 2 2. 介绍 2 3. Annotation 2 4. testng.xml 3 4.1. 例1 3 4.2. ...
 - X100S Collection Before 2014/08/01
			
风暴前的东京湾 // Tokyo Bay before Storm 上野公园 // Ueno Park
 - vue 构建项目遇到的请求本地json问题
			
在本地测试的json没有问题,但是打包后,发现json 的路径不对了,变成了绝对路径 解决方法: 建立的json文件需要放置 根目录/static下.如项目名/static/data.json,这边 ...
 - Python random模块方法
			
random内置模块中的方法注解 random.seed(a=None, version=2) # 初始化伪随机数生成器,若种子a相同,则可以使生成的随机数相同.如果未提供a或者a=None,则使用系 ...
 - virtualbbox  centos7 NAT模式外网 Host-only Adapter模式联网 双网卡
			
1.下载oracle VM virtualbox centos7 1.1. 下载地址:https://www.virtualbox.org/wiki/Downloads https://www.ce ...
 - hadoop,spark,Zookeeper,,, 这些名字都是怎么来的呢?
			
Apache 首先我们要明白,Apache 是一个 http 服务器,而我们熟悉的另一种说法"Apache Hadoop"中的 Apache 则指的是 Apache 软件基金会.& ...
 - SQL server 2012 数据库日志缓存过大
			
由于我公司的每日数据录入量较多,数据库日志与日俱增,前两天就出现了,因为数据库日志太大导致了 服务器磁盘空间不足,于是我上网查了一下,终于找到了一个数据库日志文件压缩的方法 原文出处:http://b ...