Nodejs提供了net模块和dgram实现TCP和UDP数据通信
1.创建TCP服务器
2.监听客户端连接的socket端口对象
3.向客户端发送数据
4.UDP客户端和服务器通信
5.UDP服务器向客户端组播数据
1.net模块基于TCP的数据通信 1)创建TCP服务器 var server=net.createServer([options],[connectionListener])
```
var net=require('net');
var server=net.createServer(function (socket) {
console.log('客户端与服务器连接建立');
});
server.listen(8431,'localhost',function () {
console.log('服务器开始监听');
});
```
复制代码
2)返回监听地址的
```
var net=require('net');
var server=net.createServer(function (socket) {
console.log('客户端与服务器连接建立');
});
server.listen(8431,'localhost',function () {
address=server.address();
console.log('被监听的端口地址是%j',address);
复制代码
});
2.创建TCP客户端 1)var net=new net.Socket([option])
3.TCP客户端和服务器之间发送数据
TCPServer.js
复制代码
var net=require('net');
var server=net.createServer();
server.on('connection',function (socket) {
console.log('客户端与服务器连接已经建立');
socket.setEncoding('utf-8');
socket.on('data',function (data) {
console.log('已经接收到客户端发送的数据'+data);
socket.write('确认数据:'+data);
});
});
server.listen(8432,'localhost');
复制代码
TCPSocket.js
var net=require('net');
var client=new net.Socket();
client.setEncoding('utf-8');
client.connect(8432,'localhost',function () {
console.log('已连接到服务器');
client.write('你好');
});
client.on('data',function (data) {
console.log('已连接到服务器端发送的数据:'+data);
});
复制代码
4.net模块中的类和方法 1)isIP 2)isIPv4 3)isIpv6
TCP是一种抑郁连接的协议,,在进行通信的钱,客户端和服务器要建立通信连接,UDP是面向非连接的协议
1.创建UDP服务器
var dgram=require("dgram");
var server=dgram.createSocket("udp4");
server.on("message",function (msg, rinfo) {
console.log('已接收客户端发送的数据:'+msg);
console.log('客户端的地址信息为%j',rinfo);
var buf=new Buffer("确认信息:"+msg);
server.send(buf,0,buf.length,rinfo.port,rinfo.address);
});
server.on("listening",function () {
var address=server.address();
console.log("服务器开始监听,地址信息为%j",address);
});
server.bind(41234,'localhost');
复制代码
2.创建UDP客户端
var dgram=require('dgram');
var message=new Buffer("您好.");
var client=dgram.createSocket("udp4");
client.send(message,0,message.length,41234,"localhost",function (err,bytes) {
if(err)
console.log('发送数据失败.');
else
console.log("已发送%d字节数据",bytes);
});
client.on("message",function (msg,rinfo) {
console.log("已接收服务器发送的数据%s",msg);
console.log("服务器地址为%s",rinfo.address);
console.log("服务器所用端口为%s",rinfo.port);
});
复制代码