node学习之路(四)net模块实现tcp通信

点击进入官网net模块API
在node中net模块专门用于tcp服务器和tcp客户端的通信。

1.实现步骤如下

创建tcp连接
var server=net.createServer([options],[callBackFunc1]);
监听客户端请求
server.listen(port,[host],[backlog],[callbackFunc2]);
参数说明
callBackFunc1(可选参数,当服务器端和客户端成功连接时调用此函数。其相当于连接时触发的connection函数。);
callBackFunc2(可选参数,当服务器监听事件触发后调用此函数。PS:应该是在服务器端和客户端成功连接之前触发。)

2.server的事件

server事件如下:
connection(建立连接时) close(连接关闭时) error(连接出错时) listen(监听客户端)
server中常用的方法:
address() close()

1)connection事件触发时的回调函数中存在参数socket(当服务器端和客户端成功连接后返回的socket对象。)
socket对象中的常用方法:address(),pause() resume(),connect(),ref(),unref()
2)error事件(连接出错时触发) 回调函数中的参数是错误类型。

server.on("error",function(e){
console.log(e)//e为错误类型
});

3.socket端口对象

1)address()方法使用

`server.on("connection",function(socket){
     var address=socket.address();
 });

注:address的值具有的属性如下
port(连接客户端的端口号)
address(socket端口所属的ip地址)
family(IP地址的类型“ipv4”)

2) pause()和resume()方法

`server.on("connection",function(socket){
     socket.pause();
     //暂停socket的data事件触发此时服务端会将客户端的数据暂存在一个单独的缓存区
     socket.resume();
     //恢复socket的data事件触发
 });

3)pipe()将客户端发送的数据书写到文件或其他目标对象中

var file=require("fs").createWriteStream("../test.txt");
`server.on("connection",function(socket){
socket.pipe(file,[options]);
//file 为必须的参数,表示写入数据的对象。options为可选的
}

4)setTimeout(timeout,callback);用来设置客户端连接的超时时间

`server.on("connection",function(socket){
socket.setTimeout(5,function(){
console.log("连接5秒了!");
//连接超时后调用的函数;并且此时会触发timeout事件
});
socket.on("timeout",function(){
console.log("连接超时");
});
}

5)socket可触发的事件
data(客户端发送数据时触发)
timeout(连接超时触发此事件)
connect(客户端的事件,当一个套接字连接成功建立了发出的。在server的connection事件之后触发);
error(客户端触发的事件)
close(客户端触发的事件)

注:本文仅列出net模块中常用的部分知识。详情请查看net的API文档。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值