首页
   /       /   
Node.js网络编程-多人聊天
4月
25
Node.js网络编程-多人聊天
作者:大彭Sir    分类: 学习笔记

Node 中的网络编程

Node.js也提供了对socket的支持,它提供了一个net(网络)模块用来处理和TCP相关的操作,提供了dgram模块用来处理UDP(数据报)相关操作

net 模块给你提供了一个异步的网络封装. 它包含创建服务器和客户端(称为流)的功能

1.创建服务端

net模块通过net.createServer方法创建TCP服务器

// 服务端
var net = require('net');
// 创建服务器
server = net.createServer();
var users=[];//保存链接进来的客户端
// 监听客户端是否连接成功 socket客户端 能获取到客户端的ip地址
server.on('connection',function(socket){
    console.log("当前ip:【"+socket.remoteAddress+"】端口号:【"+socket.remotePort+"】");
    // 将客户端保存到数组中
    users.push(socket);
    //接受客户端发送过来的数据
    socket.on('data',function(data){
       var msg = data.toString();
       //服务器分发数据给所有的客户端
       users.forEach(function(client){
        if(socket != client){
            client.write(client.remotePort+":"+msg);
        }
       });
    });

    //可能会报错
    server.on('error',function(){
        console.log('网络异常,请稍后重试......')
    })
});
// 启动服务器
server.listen(3000,'127.0.0.1',function(){
    console.log([
        "                   _ooOoo_",
        "                  o8888888o",
        "                  88\" . \"88",
        "                  (| -_- |)",
        "                  O\\  =  /O",
        "               ____/`---'\\____",
        "             .'  \\\\|     |//  `.",
        "            /  \\\\|||  :  |||//  \\",
        "           /  _||||| -:- |||||-  \\",
        "           |   | \\\\\\  -  /// |   |",
        "           | \\_|  ''\\---/''  |   |",
        "           \\  .-\\__  `-`  ___/-. /",
        "         ___`. .'  /--.--\\  `. . __",
        "      .\"\" '<  `.___\\_<|>_/___.'  >'\"\".",
        "     | | :  `- \\`.;`\\ _ /`;.`/ - ` : | |",
        "     \\  \\ `-.   \\_ __\\ /__ _/   .-` /  /",
        "======`-.____`-.___\\_____/___.-`____.-'======",
        "                   `=---='",
        "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
        "         佛祖保佑       永无BUG    服务器启动"
    ].join('\n'));

})

创建客户端

// 客户端
var net = require('net');
//创建客户端
var client = net.createConnection({
    port:3000,
    host:'127.0.0.1'
});
//监听客户端 是否连接服务成功 on监听
client.on('connect',function(){
    //接受控制台的数据
    process.stdin.on('data',function(data){
        var client_msg=data.toString().trim();
        //给服务端发送数据
        client.wrient(client_msg);
    });
});
//接收服务端返回的数据
client.on('data',function(data){
    console.log(data)
})

源码下载

网络编程.rar

本文标签:标签: nodejs
责任声明:本页信息由网友自行发布或来源于网络,真实性、合法性由发布人负责,请仔细甄别!本站只为传递信息,我们不做任何双方证明,也不承担任何法律责任。文章内容若侵犯你的权益,请联系本站删除!
转载声明:本文作者大彭Sir,如需转载请保留文章出处!原文链接请自行复制!

Theme By Brief 鄂ICP备19010459号

站长统计 sitemap

首页

分类

友链

登录