版权声明:本文为博主原创文章,未经博主允许不得转载。 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);
结果演示:
代码解析:
- 首先申请使用net模块,之前的Http.Server继承自net.Server;
- 创建一个server,并绑定回调函数;
- 回调函数中connection即socket,用来监听client端的事件;
- connection.on()将事件和回调函数绑定在一起;
- 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");
结果演示:
代码解析:
- 同server端首先require net模块;
- 与server请求建立连接,指定port、host;
- 事件绑定,首先会触发connec事件;
- client.end当连接另一侧发送了 FIN 包的时候触发。