node.js学习笔记之socket端口对象

/*
* socket端口对象
* */

/*使用socket端口对象的address方法来查看端口的地址信息*/

var net = require('net')
var server =net.createServer();
server.on('connection',function (socket) {
    //当客户端与服务端建立联系后,输出端口地址信息
    address = socket.address();
    console.log('被监听的地址信息为 %j',address);
    //本机输出:被监听的地址信息为 {"address":"127.0.0.1","family":"IPv4","port":3000}
}).listen(3000,'localhost');

/*data事件的回调函数使用实例*/

var net = require('net')
var server = net.createServer();
server.on('connection',function (socket) {
    //设置数据的编码格式,或者输出时写data.toString()
    socket.setEncoding('utf8');
    socket.on('data',function (data) {
        console.log(data)
    })
});
server.listen(3000,'localhost');

/*end事件的回调函数使用实例*/

var net = require('net')
var server = net.createServer();
server.on('connection',function (socket) {
    //设置数据的编码格式,或者输出时写data.toString()
    socket.setEncoding('utf8');
    socket.on('data',function (data) {
        console.log(data)
        console.log('已接受到%d字节的数据。',socket.bytesRead);
    });
    socket.on('end',function () {
        //当客户端连接被关闭后,TCP服务器也被被关闭
        console.log('客户端连接已关闭');
    })
});
server.listen(3000,'localhost');


/*使用pipe方法将所有的客户端发送的数据写入文件*/


var net = require('net');
var file = require('fs').createWriteStream('./message.txt');
var server = net.createServer();
server.on('connection',function (socket) {
    socket.setEncoding('utf8');
    //当end属性值为true时,当数据被全部读取完毕时立即结束操作
    //当end属性值为false时,并不结束写操作,目标对象可以被继续写入新的数据
    socket.pipe(file,{end:false});
    //把数据写入文件中,5秒后在文件中追加“再见”,然后用unpipe方法取消对文件的写操作
    setTimeout(function () {
        file.end('再见');
        socket.unpipe(file);
    },5000)
});
server.listen(3000,'localhost');

/*socket端口对象的pause方法与resume方法的使用实例*/

var net = require('net');
var file = require('fs').createWriteStream('./message.txt');
var server = net.createServer();
server.on('connection',function (socket) {
    socket.setEncoding('utf8');
    socket.pause();
    setTimeout(function () {
        socket.resume();
        socket.pipe(file);
    },30000);
});
server.listen(3000,'localhost');

/*使用setTimeout方法指定客户端链接的超时时间*/
var net = require('net');
var file = require('fs').createWriteStream('./message.txt');
var server = net.createServer();
server.on('connection',function (socket) {
    socket.setEncoding('utf8');
    socket.setTimeout(10*1000);
    socket.pause();
    socket.on('timeout',function () {
        socket.resume();
        socket.pipe(file);
    });
    socket.on('data',function () {
        socket.pause();
    })
});
server.listen(3000,'localhost');

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值