layout: post title: tips4-socket和server常用的几个事件、方法和属性 tags: [node] —

socket
事件 事件简述
connect 这个connect不是net的connect,虽然单词一样,但socket的connect是当socket连接上服务器的时候触发的一个事件
data 这个data就是用来接收数据的,只要是传过来的数据,都可以用data来接收一下
timeout 当超时器启动的时候触发这个函数
error 报错的时候触发一下
close 当客户端连接断开的时候触发这个函数
属性 属性简述
remoteAddress 查看远程ip地址
remotePort 查看远程端口
localAddress 查看本地ip地址
localPort 查看本地端口
方法 方法简述
setTimeout 设置超时器,和timeout配合起来用
write 传递信息
server -
事件 事件简述
listening 在服务器监听启动状态,若服务器启动,则触发函数
connection 在服务器监听是否连接成功,若连接成功,则触发函数
close 监听服务器是否关闭
error 监听服务器有没有报错
方法 方法简述
listen 监听端口
close 关闭服务器
address 查看服务器地址

一个demo用完

// client.js

var net = require("net"); // 引用一个模块

var socket = net.connect(12306, "127.0.0.1"); // 创建一个连接 连接到ip地址为127.0.0.1的12306端口
socket.setTimeout(2000); // 设置超时器 2秒后触发超时事件

socket.on("timeout",function(){
    // 监听是否超时
    // console.log("超时啦") // 在客户端提示 “"超时啦”"
    socket.end() // 断开客户端的链接
});

socket.on("connect", function(){
    // 给socket绑定一个connect事件 当连接到服务器端的时候触发这个函数
    console.log("连接成功")
    socket.write("我在链接成功的一瞬间给你发了信息")
    socket.write("Hello World"); // 给服务器端发送信息
    socket.write("1Hello World1"); // 给服务器端发送信息
    socket.write("1Hello World2"); // 给服务器端发送信息
    socket.write("Hello World3"); // 给服务器端发送信息
    socket.write("Hello World4"); // 给服务器端发送信息
    socket.write("Hello World5"); // 给服务器端发送信息
    socket.write("Hello World6"); // 给服务器端发送信息
    socket.write("Hello World7"); // 给服务器端发送信息
    socket.write("Hello World8"); // 给服务器端发送信息
    socket.write("Hello World9"); // 给服务器端发送信息
    socket.on("data", function(data){
        // 监听data事件 当收到服务器端传来信息的时候 打印输出
        console.log("data:"+data.toString())
    });
    console.log(socket.remoteAddress)
    console.log(socket.localAddress)
});


// server.js


var net = require("net")

var server = net.createServer()
server.listen(12306, "127.0.0.1")
server.on("listening", function(){
    console.log("服务器启动")
})
server.on("connection", function(socket){
    console.log("有新的链接")
    socket.on("data",function(data){
        console.log(data.toString())
        socket.write("server收到 >> "+data.toString() + "\n")
    })
    socket.on("close",function(){
        console.log("客户端已关闭")
    //    server.close()
    })
})

值得注意的是,上面client的socket.write(“1Hello World1”)是分批次发送到服务端的,留个坑给你慢慢玩,很有趣