http
通过node自带的http
模块可以进行http请求,但通常使用第三方库request
进行http请求
request({
url: url,//请求路径
method: "POST",//请求方式,默认为get
headers: {//设置请求头
"content-type": "application/json",
},
body: JSON.stringify(requestData)//post参数字符串
}, function(error, response, body) {
if (!error && response.statusCode == 200) {
}
});
TCP
原生通过net
模块
server
var net = require('net');
var tcp_server = net.createServer(); // 创建 tcp server
var Sockets = {};
var SocketID = 1;
// 监听 端口
tcp_server.listen(5678,function (){
console.log('tcp_server listening 5678');
});
// 处理客户端连接
tcp_server.on('connection',function (socket){
console.log(socket.address());
Sockets[SocketID] =socket;
SocketID++;
DealConnect(socket)
})
tcp_server.on('error', function (){
console.log('tcp_server error!');
})
tcp_server.on('close', function () {
console.log('tcp_server close!');
})
// 处理每个客户端消息
function DealConnect(socket){
socket.on('data',function(data){
data = data.toString();
// 向所有客户端广播消息
for(var i in Sockets){
Sockets[i].write(data);
}
// socket.write(data);
console.log('received data %s',data);
})
// 客户端正常断开时执行
socket.on('close', function () {
console.log('client disconneted!');
})
// 客户端正异断开时执行
socket.on("error", function (err) {
console.log('client error disconneted!');
});
}
client
var net = require('net');
// 指定连接的tcp server ip,端口
var options = {
host : '172.30.20.10',
port : 5678
}
var tcp_client = net.Socket();
// 连接 tcp server
tcp_client.connect(options,function(){
console.log('connected to Server');
tcp_client.write('I am tcp_client of node!');
})
// 接收数据
tcp_client.on('data',function(data){
console.log('received data: %s from server', data.toString());
})
tcp_client.on('end',function(){
console.log('data end!');
})
tcp_client.on('error', function () {
console.log('tcp_client error!');
})
UDP
原生通过dgram
模块
server
var dgram = require('dgram');
//创建 udp server
var udp_server = dgram.createSocket('udp4');
udp_server.bind(5678); // 绑定端口
// 监听端口
udp_server.on('listening', function () {
console.log('udp server linstening 5678.');
})
//接收消息
udp_server.on('message', function (msg, rinfo) {
strmsg = msg.toString();
udp_server.send(strmsg, 0, strmsg.length, rinfo.port, rinfo.address); //将接收到的消息返回给客户端
console.log(`udp server received data: ${strmsg} from ${rinfo.address}:${rinfo.port}`)
})
//错误处理
udp_server.on('error', function (err) {
console.log('some error on udp server.')
udp_server.close();
})
client
var dgram = require('dgram');
var udp_client = dgram.createSocket('udp4');
udp_client.on('close',function(){
console.log('udp client closed.')
})
//错误处理
udp_client.on('error', function () {
console.log('some error on udp client.')
})
// 接收消息
udp_client.on('message', function (msg,rinfo) {
console.log(`receive message from ${rinfo.address}:${rinfo.port}:${msg}`);
})
//定时向服务器发送消息
setInterval(function(){
var SendBuff = 'hello 123.';
var SendLen = SendBuff.length;
udp_client.send(SendBuff, 0, SendLen, 5678, '172.30.20.10');
},3000);
串口通讯
var SerialPort = require('serialport');
网友评论