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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fei86155/article/details/88605177

前言

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 包的时候触发。

猜你喜欢

转载自blog.csdn.net/fei86155/article/details/88605177