uniapp使用tcp和udp的区别和例子

news/2024/5/18 11:52:23 标签: uni-app, tcp/ip, udp

在Node.js中,主要有三种socket:TCP,UDP和Unix域套接字。以下分别介绍这TCP/UDP的使用方法和示例:

TCP socket
TCP socket提供了可靠的、面向连接的通信流,适用于需要可靠传输的应用,例如Web浏览器的HTTP请求。在Node.js中,可以使用net模块创建TCP服务器和客户端。以下是一个创建TCP服务器和客户端的示例:

服务器端代码(app.js):

var express = require('express');  
var app = express();  
var net = require('net');  
var HOST = '127.0.0.1';  
var PORT = 8081;  
  
net.createServer(function(sock) {  
  console.log('获得一个连接');  
  sock.on('data', function(data) {  
    console.log('从客户端接受的数据: ' + data);  
    sock.write('向客户端回发数据 "' + data + "\n");  
    sock.end("关闭socket"); // 触发客户端和服务端的close事件监听  
  });  
}).listen(PORT, HOST);

客户端代码(client.js):

var net = require('net');  
var HOST = '127.0.0.1';  
var PORT = 8081;  
  
var client = net.createConnection(PORT, HOST);  
client.on('connect', function() {  
  console.log('连接到服务器');  
  client.write('客户端发送数据\n');  
});  
client.on('data', function(data) {  
  console.log('从服务器接受的数据: ' + data);  
});

UDP socket
UDP socket提供了无连接、不可靠的通信流,适用于不需要可靠传输的应用,例如实时游戏或VoIP应用。在Node.js中,可以使用dgram模块创建UDP服务器和客户端。以下是一个创建UDP服务器和客户端的示例:

服务器端代码(server.js):

var dgram = require('dgram');  
var server = dgram.createSocket('udp4');  
server.on('listening', function() {  
  var address = server.address();  
  console.log('UDP服务器正在监听 %s:%d', address.address, address.port);  
});  
server.on('message', function(message, remote) {  
  console.log('从 %s:%d 收到消息: %s', remote.address, remote.port, message);  
  server.send('向客户端回发数据 "' + message + "\n", remote.port, remote.address);  
});  
server.bind(12345); // 绑定端口号,并开始监听消息

客户端代码(client.js):

var dgram = require('dgram');  
var message = Buffer.from('客户端发送数据\n');  
var client = dgram.createSocket('udp4');  
client.send(message, 0, message.length, 12345, 'localhost', function(err, bytes) {  
  if (err) throw err;  
  console.log('UDP客户端已发送消息');  
});  
client.on('message', function(message, remote) {  
  console.log('从 %s:%d 收到消息: %s', remote.address, remote.port, message);  
});

 


http://www.niftyadmin.cn/n/5311440.html

相关文章

FineBI实战项目一(4):指标分析之每日订单总额/总笔数

1 明确数据分析目标 统计每天的订单总金额及订单总笔数 2 创建用于保存数据分析结果的表 use finebi_shop_bi;create table app_order_total(id int primary key auto_increment,dt date,total_money double,total_cnt int ); 3 编写SQL语句进行数据分析 selectsubstring(c…

vue3 修饰符大全(近万字长文)

系列文章目录 TypeScript 从入门到进阶专栏 文章目录 系列文章目录前言一、事件修饰符(Event Modifiers)1、.stop(阻止事件冒泡)2、.prevent(阻止事件的默认行为)3、.capture(使用事件捕获模式…

前端-基础 常用标签-超链接标签( 锚点链接 )

锚点链接 : 点击链接,可以快速定位到 页面中的某个位置 如果不好理解,讲一个例子,您就马上明白了 >>> 这个是 刘德华的百度百科 ,可以看到,页面里面有很多内容,那就得有个目录了 …

C 语言文件处理全攻略:创建、写入、追加操作解析

C 语言中的文件处理 在 C 语言中,您可以通过声明类型为 FILE 的指针,并使用 fopen() 函数来创建、打开、读取和写入文件: FILE *fptr; fptr fopen(filename, mode);FILE 基本上是一个数据类型,我们需要创建一个指针变量来使用它…

计算机毕业设计----SSM场地预订管理系统

项目介绍 本项目分为前后台,前台为普通用户登录,后台为管理员登录; 用户角色包含以下功能: 按分类查看场地,用户登录,查看网站公告,按分类查看器材,查看商品详情,加入购物车,提交订单,查看订单,修改个人信息等功能。 管理员角…

Scikit-Learn线性回归(四)

Scikit-Learn线性回归四:梯度下降 1、梯度下降1.1、梯度下降概述1.2、梯度下降及原理1.3、梯度下降的实现2、梯度下降法求解线性回归的最优解2.1、梯度下降法求解的原理2.2、梯度下降法求解线性回归的最优解2.3、梯度下降法求解线性回归案例(波士顿房价预测)3、Scikit-Learn…

LeetCode 2353. 设计食物评分系统【设计,哈希表,有序集合;堆+懒删除】1781

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

解决:Unity : Error while downloading Asset Bundle: Couldn‘t move cache data 问题

目录 问题: 尝试 问题得到解决 我的解释 问题: 最近游戏要上线,发现一个现象,部分机型在启动的时候闪退或者黑屏,概率是5%左右,通过Bugly只有个别机型才有这个现象,其实真实情况比这严重的多…