一、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
b. 根据url地址进行判断,并提供指定路径的数据
三、
移除数组中的某一个元素方法:
for(var i=0;i<socketlist.length;i++){
if(socketlist[i]===socket){
socketlist.splice(i,1);
break;
}
}