TCP

1
2
3
4
5
var http = require('http');
http.createServer(function(req, res){
res.writeHead(200, {'Content-Type', 'text/html'});
res.end('<h1>Hello, world!!!</h1>');
});

$ telnet 127.0.0.1

GET /HTTP/1.1

  • 成功建立一个tcp连接
  • 创建一个HTTP请求
  • 接收到一个HTTP响应
  • 测试了一些TCP的特性。到达数据和在node中写的一样: 先写Content-Type响应头,然后是响应体
    ,最后所有信息都按序到达。

基于TCP的聊天程序

下面创建一个基本的TCP服务器,并要求输入用户名。同事还回告诉你协议和指令。

  • 成功连接到服务器后,服务器会显欢迎信息,并要求输入用户名。同时,还会告诉你当前还有多少其他客户端
    也连接上该服务器。
  • 输入用户名,按下回车键后,就认为成功连接上。
  • 连接后,就可以输入信息在按下回车键,来项其他客户端进行消息的收发。

为什么输入回车,在node中,通过\n来判断消息是否已将完到达。所以,作为一个分割符使用。

  1. 创建模块
    npm init

  2. 理解NET.SERVER API
    接下来,创建index.js

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var net = require('net');
    //createServer
    var server = net.createServer(function(conn){
    //handle connection
    console.log('\033[90m new Connections!\033[39m');
    });
    //listen
    server.listen(3000, function(){
    console.log('\033[96m server listening on *:3000\033[39m');
    })