今日份的Node.js已就位—实现C/S通信(04)

目录

今日份的Node.js已就位—简介(01)

今日份的Node.js已就位—Http模块(02)

今日份的Node.js已就位—自定义模块(03)

今日份的Node.js已就位—实现C/S通信(04)

今日份的Node.js已就位—Express框架(05)

前言

C语言版本的客户端(C)和服务器(S)进行通信已经实现,其根本是建立在TCP/IP连接的基础上,完成三次握手实现面向连接,这次用Node.js实现C/S架构,其比C要简单得多,了解Net模块的用法就会很轻松的实现,如果require这个模块失败,即还没有这个模块,先用如下命令进行安装。

    npm install net

服务器端代码

var net = require("net");

net.createServer(function(connection) {
	connection.on("data", function(data) {
		console.log("client send -->" + data);
	});
	
	connection.on("end", function() {
		console.log("client send message end");
	});
	connection.on("close", function() {
		console.log("client closed");
	})
	connection.write("hello clilent");
	
}).listen(8888);

结果演示:

代码解析:

  1. 首先申请使用net模块,之前的Http.Server继承自net.Server;
  2. 创建一个server,并绑定回调函数;
  3. 回调函数中connection即socket,用来监听client端的事件;
  4. connection.on()将事件和回调函数绑定在一起;
  5. connection.write()向client发送消息。

客户极端代码

var net = require("net");

var client = net.createConnection(8888,"127.0.0.1");

client.on("connect", function() {
	console.log("Being to establish connect");
});

client.on("close", function() {
	console.log("close connection");
});

client.on("data", function(data) {
	console.log("receive-->" + data);
});

client.end("Hello Server");

结果演示:

代码解析:

  1. 同server端首先require net模块;
  2. 与server请求建立连接,指定port、host;
  3. 事件绑定,首先会触发connec事件;
  4. client.end当连接另一侧发送了 FIN 包的时候触发。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ERROR Failed to compile with 48 errors 上午10:53:54 These dependencies were not found: * core-js/modules/es.array.push.js in ./node_modules/.store/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/objectSpread2.js, ./node_modules/.store/cache-loader@4.1.0/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/.store/babel-loader@8.3.0/node_modules/babel-loader/lib!./node_modules/.store/cache-loader@4.1.0/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/.store/vue-loader@15.10.1/node_modules/vue-loader/lib??vue-loader-options!./src/components/HeaderSearch/index.vue?vue&type=script&lang=js& and 29 others * core-js/modules/es.error.cause.js in ./node_modules/.store/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js, ./node_modules/.store/cache-loader@4.1.0/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/.store/babel-loader@8.3.0/node_modules/babel-loader/lib!./node_modules/.store/cache-loader@4.1.0/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/.store/vue-loader@15.10.1/node_modules/vue-loader/lib??vue-loader-options!./src/layout/components/Navbar.vue?vue&type=script&lang=js& and 5 others * core-js/modules/es.object.proto.js in ./node_modules/.store/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js * core-js/modules/es.regexp.dot-all.js in ./node_modules/.store/cache-loader@4.1.0/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/.store/babel-loader@8.3.0/node_modules/babel-loader/lib!./node_modules/.store/cache-loader@4.1.0/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/.store/vue-loader@15.10.1/node_modules/vue-loader/lib??vue-loader-options!./src/components/ThemePicker/index.vue?vue&type=script&lang=js&, ./node_modules/.store/cache-loader@4.1.0/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/.store/babel-loader@8.3.0/node_modules/babel-loader/lib!./node_modules/.store/cache-loader@4.1.0/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/.store/vue-loader@15.10.1/node_modules/vue-loader/lib??vue-loader-options!./src/layout/components/Navbar.vue?vue&type=script&lang=js& and 2 others * core-js/modules/web.url-search-params.delete.js in ./src/utils/request.js * core-js/modules/web.url-search-params.has.js in ./src/utils/request.js * core-js/modules/web.url-search-params.size.js in ./src/utils/request.js * qs in ./src/utils/request.js * svg-baker-runtime/browser-symbol in ./src/icons/svg/user.svg To install them, you can run: npm install --save core-js/modules/es.array.push.js core-js/modules/es.error.cause.js core-js/modules/es.object.proto.js core-js/modules/es.regexp.dot-all.js core-js/modules/web.url-search-params.delete.js core-js/modules/web.url-search-params.has.js core-js/modules/web.url-search-params.size.js qs svg-baker-runtime/browser-symbol怎么解决如何安装
最新发布
07-21

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值