一、安装NodeJS
官网下载,下载好后一路下一步
https://nodejs.org/en/
二、配置环境
1、新建一个node文件夹
2、新建一个JSON文件,名字为package.json,内容为
{
"name": "socket",
"version": "0.0.1",
"description": "myproject",
"dependencies": {},
"devDependencies": {}
}
3、在node文件夹目录下打开cmd,安装两个组件net、ws
npm install net --save-dev
npm install ws --save-dev
4、新建一个SocketClient.js文件,内容为
var net = require('net');
var client = net.connect('9001','192.168.1.106',function(){
console.log('已经与服务器连接');
client.write('hello server');
});
client.on('data',function(data){
console.log(data.toString());
//client.end();
});
client.on('end',function(){
console.log('服务端断开');
});
5、新建一个SocketServer.js文件,内容为
var net = require('net');
var chatServer = net.createServer(),
clientList = [];
clientMap = new Object();
var ii = 0;
chatServer.on('connection', function(client) {
client.name = ++ii;
clientMap[client.name] = client;
//数据接收事件
client.write('Hi client');
client.on('data', function(data) {
console.log('客户端传来:' + data);
//client.write(data);
broadcast(data, client);// 转发来自客户端的信息
});
//数据错误事件
client.on('error',function(exception){
console.log('client error:' + exception);
client.end();
});
//客户端关闭事件
client.on('close',function(data){
delete clientMap[client.name];
console.log(client.name +'下线了');
broadcast(client.name +'下线了',client);
});
});
function broadcast(message, client) {
for(var key in clientMap){
clientMap[key].write(client.name + 'say:' + message + 'n');
}
};
chatServer.listen(9001, function(){
var address = chatServer.address();
console.log('服务已监听: %j', address);
});
6、新建一个WsServer.js文件,内容为:
var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer({port: 9000});
var i = 0;
//var wsObj = {};
wss.on('connection', function(ws) {
ws.name = ++i;
//wsObj[ws.name] = ws;
console.log(ws.name + '上线');
ws.on('message', function(message) {
ws.send(message);
console.log('received: '+ ws.name +'%j', message);
});
ws.send(ws.name + ', welcome');
ws.on('close', function(){
//global.gc(); //调用内存回收
console.log(ws.name + ', leave');
});
});
三、wireshark抓本地包
以管理员身份运行下面命令,将ip地址改为自己本地ip,后面网关,电脑每次启动都需要设置
route add 192.168.1.106 mask 255.255.255.255 192.168.1.1
四、测试
1、启动服务端
node SocketServer.js
2、启动客户端
node SocketClient.js
关 注 有 礼
欢迎关注公众号:网络安全者
获取每日抽奖送书
本文内容来自网络,如有侵权请联系删除
原文始发于微信公众号(网络安全者):WebSocket学习笔记 -- 环境搭建
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论