nodejs 网络基础
2020-12-20 03:34
标签:nodejs 面向连接 sock 信息 function clu 不可 code 关闭 服务器的代码如下,还有一些基础概念 客户端代码 nodejs 网络基础 标签:nodejs 面向连接 sock 信息 function clu 不可 code 关闭 原文地址:https://www.cnblogs.com/xiaoxiong1986/p/14054013.html/**
* 概念:
* ip和端口主要是为了区分服务器的运用的操作
* ipv4的格式 [0-255] xxxx.xxxx.xxxx.xxxx
* ipv6的格式 [0-0xffff] 8个xxxx
* 可靠:tcp
* 不可靠:udp
*
* tcp可靠的原因
* 1.面向连接
* 2.字节流,传输层的服务器
* 3.采用3次握手
*
* 握手协议:
* 1.客户端连接进来的信息
* 2.服务器监听的socket客户端的连接,重新创建一个socket与之匹配
* 3.然后发送给客户端告诉客户端已经连接成功
* 4.客户端这个就可以正常发送数据,服务器也可以正常接收到服务器的消息
* 5.如果客户端断开,会向服务器发送离开的信息
* 6.服务器监听socket收到这个消息包,就会把对应的绑定的socket进行删除
*/
//服务器的编写
//1.导入相应的模块
let net = require("net");
//2.监听当服务器ip和端口
const server = net.Server();
server.listen({
host:"192.168.1.10",
port:6666,
exclusive:true
})
//3.对应的事件部分
//连接事件
server.on("connection",function(clsock) {
console.log("有客户端做连接");
//客户端关闭事件
clsock.on("close",function(){
console.log("客户端关闭");
})
//错误事件
clsock.on("error",(error)=>{
console.log(error);
})
clsock.on("data",(data)=>{
//接收到数据
console.log("收到客户端的消息"+data);
clsock.write(data);
})
})
//错误事件
server.on("error",(error)=>{
console.log(error);
})
//监听事件
server.on("listening",()=>{
console.log("服务器开启....");
})
//第一步引入对应的包
var net = require(‘net‘);
//console.log(net)
//2.创建客户端的socket对象
const sock = net.createConnection({host:"192.168.1.10",port:6666},function(){
console.log("已经连接到服务器");
//发送相关的消息
sock.write("hello");
})
sock.setTimeout(15000);//设置timeout时间
//3.建立所有的监听事件
//错误事件
sock.on("error",function(error){
console.log(error);
})
//监听接受数据部分
sock.on("data",function(data){
console.log("服务器发送的数据"+data);
})
//关闭事件
sock.on("close",function(data){
console.log("关闭事件");
})
//超时
sock.on("timeout",function(){
console.log("时间超时");
sock.end();
})
//end事件
sock.on("end",function(){
console.log("end事件被出发");
})