socket

一、Socket编程(net模块)

(1) 服务器的建立

a. 引入net模块

const net = require("net");

b. 创建服务器

//2.创建服务器    每获取一次连接,会触发一次这个回调函数,并且得到一个与客户端的socket
const server = net.createServer(function(socket){
    //给客户端发送成功信息
    
socket.write("welcome to chat room!");
    //接收客户端发送过来的数据
    
socket.on("data",function(chunk){
        console.log(chunk.toString());
    })
})

c. 监听端口,启动服务器

server.listen(9090,function(err){
    if(err){
        console.log("服务器启动失败,端口被占用!");
        return;
    }
    console.log("服务器启动成功!");
})

(2) 客户端的建立

a. 引入net模块

const net = require("net");

b. 获取与服务器的连接

const socket = net.connect({port:9090,host:"localhost"},function(err){
    if(err) throw err;
    //接收消息和发送消息
    
socket.on("data", function (chunk) {
        console.log(chunk.toString());
    })
    //扫描控制台发送数据
    
process.stdin.on("data",function(chunk){
        socket.write(chunk);
    })
})


二、Web服务器开发路由(http模块)

(1) 服务器启动基本流程

a. 引入http模块

const ht = require("http");

b. 创建服务器

const server = ht.createServer(function(req,res){
    //服务器响应和请求的过程
    //设置全请求头   
res.writeHead(200,{"Content-type":"text/html;charset=utf-8"});
    //拼接一个地址
    
const dizhi = pt.join(__dirname,"/html/01test.html");
    //读取文件中的数据
    
fs.readFile(dizhi,function(err,chunk){
        res.write(chunk);
        res.end();
    })
})

c. 监听端口,启动服务

server.listen(9090,function(err){
    if(err) throw err;
    console.log("server is start up success!");
})

(2) Web服务器路由实现

基本理解:页面访问服务,通过不同的url地址,反馈指定的page给浏览器。

a. 获取url地址全路径:request.url

 socket

b. 根据url地址进行判断,并提供指定路径的数据

 socket

三、

移除数组中的某一个元素方法:

for(var i=0;i<socketlist.length;i++){
    if(socketlist[i]===socket){
        socketlist.splice(i,1);
        break;
    }
}