hifizz / node-examples

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nodejs Socket demo

Node.js socket 其实非常简单,只需要用 net.createServer 即可创建一个 Socket 服务端,并开始监听。只需要短短几十行代码,即可实现socket的连接。

server.js

const net = require("net");

const port = 1234;

const server = net
  /** 创建 socket 服务端 */
  .createServer(function (socket) {
    console.log(
      "Info: connect -> " + socket.remoteAddress + ":" + socket.remotePort
    );

    socket.setEncoding("binary");

    /** 监听 data 事件,接收数据 */
    socket.on("data", function (data) {
      console.log("Client send: " + data);
    });

    socket.write("Pong! Hello, I am Wangxiaobo.");

    socket.on("error", function (exception) {
      console.log("socket error:" + exception);
      socket.end();
    });

    /** 客户端关闭事件 */
    socket.on("close", function (data) {
      console.log("client closed!");
    });
  })
  .listen(port);

server.on("listening", function () {
  console.log("server listening: " + server.address().port);
});

server.on("error", function (exception) {
  console.log("server error:" + exception);
});

client.js

const net = require('net');
const port = 1234;
const host = '127.0.0.1';

/** 创建 socket 客户端 */
const client = new net.Socket();
/** 设置成 server 一致的编码格式 */
client.setEncoding('binary');

/** 使用 connect 方法链接服务端,必须要保证端口、编码格式一致 */
client.connect(port, host, function () {
  /** 向服务端发送数据 */
  client.write('Ping! Hello, Liyinghe.');
});

client.on('data', function (data) {
  console.log('Server send:',data);
});

client.on('error', function (error) {
  console.log('error:' + error);
  /** 通过 destory 方法关闭连接 */
  client.destory();
});

client.on('close', function () {
  /** 关闭连接 */
  console.log('Connection closed');
});

About


Languages

Language:JavaScript 100.0%