nodejs实例

创建node项目

首先先执行命令行

1
npm init

之后会根据确认的选项生成package.json,创建需要运行的js文件,执行node xxx.js就行了

tcp服务器

创建tcp服务器

1
2
3
4
5
6
7
8
9
10
11
12
13
var net = require('net')
var server = net.createServer(function(scoket){
scoket.on('data',function(data){
scoket.write("GOOD SUNSHINE!")
})
scoket.on('end',function(){
console.log("断开啦")
})
scoket.write("HAPPY WEEKEND!")
})
server.listen(8888,function(){
console.log('监听8888端口')
})

node index.js运行项目,可以使用win自带的telnet当作客户端来通信。

也可以创建客户端

1
2
3
4
5
6
7
8
9
10
11
12
var net = require('net')
var client = net.connect({port:8888},function(){
console.log('客户端连接')
client.write("wwwweekend!")
})
client.on('data',function(data){
console.log(data.toString())
client.end()
})
client.on('end',function(){
console.log('客户端断开连接')
})

TCP服务的事件

分为服务器事件和连接事件。

服务器事件:通过net.createServer创建的服务器,自定义的事件有listening,connection,close,error

连接事件:每个连接都是可读可写的steam对象,自定义事件有:data,end,connect,drain,error,close,timeout

UDP服务器

创建一个服务器

1
2
3
4
5
6
7
8
9
10
var dgram = require('dgram')
var server = dgram.createSocket("udp6")
server.on("message",function(msg,rinfo){
console.log("server got:",msg,'from',rinfo.address,':',rinfo.port)
})
server.on("listening",function(){
var address=server.address()
console.log('server listening',address.address,':',address.port)
})
server.bind(8888)

创建一个客户端

1
2
3
4
5
6
7
var dgram = require("dgram")
var message = "wwwwweekend"
var client = dgram.createSocket("udp6")
client.send(message,0,message.length,8888,"localhost",function(
err,bytes){
client.close()
})

运行两个js,成功监听到数据

udp

client.send的参数分别是需要发送的buffer,buffer的偏移,长度,目标端口,目标地址,发送完执行的回调函数。

udp套接字事件:是一个EventEmitter实例,自定义事件:message(监听接口后,接收到消息触发,携带buffer对象和地址信息),listening,close,error

查看评论