nodejs中Socket 服务的建立和使用
Posted 勇敢*牛牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs中Socket 服务的建立和使用相关的知识,希望对你有一定的参考价值。
Socket 服务
套接字(socket)
是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是IP地址与端口的组合。
我们将一个小区比作一台计算机,一台计算机里面跑了很多程序,怎么区分程序呢,用的是端口,就好像小区用门牌号区分每一户人家一样。手机送到小明家了,怎么进去呢?从大门进啊,怎么找到大门呢?门牌号呀。不就相当于从互联网来的数据找到接收端计算机后再根据端口判断应该给哪一个程序一样吗。小明家的入口就可以用小区地址+门牌号进行唯一表示,那么同样的道理,程序也可以用IP+端口号进行唯一标识。那么这个程序的入口就被称作Socket。
现在再来说说什么是Socekt编程,我们将TCP协议简化一下,就只有三个核心功能:建立连接、发送数据以及接收数据。
搭建Socket服务器
第一步 开启windows 的telnet命令
点击程序
选择 启动或关闭Windows功能 选项
勾选Telnet客户端
点确定完成
/*
*创建Socket服务器
*/
// 1、加载net模块
var net = require('net');
// 2、创建net.server对象
var server = net.createServer();
// 3.绑定connetction事件,监听客户的连接
server.on('connection', function (socket)
console.log('有客户连接成功了。');
)
// 4.调用listen()启动监听
server.listen(3000, '127.0.0.1', function ()
console.log('http//127.0.0.1:3000 启动Socket服务器');
)
打开cmd运行一下代码:
统计在线人数
创建Socket服务器
/*
*创建Socket服务器
*/
// 1、加载net模块
var net = require('net');
// 2、创建net.server对象
var server = net.createServer();
// 3.绑定connetction事件,监听客户的连接
var count = 0;//保存在线人数
server.on('connection', function (socket)
// 获取客户端端口号识别不同的客户端
console.log('客户端的:' + socket.remotePort + "连接成功了。");
// 利用
count++;
console.log("当前在线人数:" + count);
socket.write('当前在线人数:' + count);
)
// 4.调用listen()启动监听
server.listen(3000, '127.0.0.1', function ()
console.log('http//127.0.0.1:3000 启动Socket服务器');
)
统计在线客户端的人数
/**
* 统计在线客户端的人数
*/
// 加载net模块
var net = require('net')
// 创建createConnection的对象,并与服务器建立连接
var client = net.createConnection(
host: '127.0.0.1',
port: 3000
);
// 绑定connet事件,建立连接成功触发
client.on("connect", function ()
console.log('与服务器连接成功。');
);
// 绑定data事件,接受服务器发送过的数据
client.on('data', function (data)
console.log(data.toString());
);
以上是关于nodejs中Socket 服务的建立和使用的主要内容,如果未能解决你的问题,请参考以下文章
在nodejs中使用socket.io和net socket
如何在 Socket.io 中与 Heroku 服务器建立 Socket 连接?